desde una funcion javaScript llamo a un ASP que crea un registro en una tabla de la BBDD mediante Ext.Ajax.request y devuelvo un ID del registro que acabo de crear con un insert, y la respuesta que obtengo en el success, debo escribirla en un textbox.
Parece sencillo, pero me encuentro con el problema que el success me devuelve 'undefined', ya que el Ajax.request NO SE ESPERA A QUE EL ASP DEVUELVA LA RESPUESTA.
Es decir: el ajax.request me retorna antes de obtener respuesta del ASP.
Lo que necesito es:
1.- llamar a la funcion Ext.Ajax.request pasandole una URL de ASP.
2.- Que el ASP haga un insert en la bbdd y luego escriba el ID del registro que acaba de insertar
3.- Que el success del Ajax.request me devuelva ese ID
4.- Escribir ese ID en un textbox.
Adjunto código:
FUNCION DEL AJAX.REQUEST:
- Código: Seleccionar todo
var execAjax= function(urlX,devolver){
Ext.Ajax.request({
method: 'GET',
url: urlX,
timeout: 6000,
success: function( resp ){
if (devolver=='true') {
alert('voy a devolver: ' +resp.responseText);
return resp.responseText;
}
},
failure: function() {
alert('Ha ocurrido un error, intente de nuevo.');
}
})
}
FUNCION QUE LLAMA A LA FUNCION DEL AJAX.REQUEST (En esta función ponemos la respuesta del Ajax.request en un textbox llamado "idPeticioX":
- Código: Seleccionar todo
function GrabacabeceraFirma()
{
var url = "http://miserver.com/ass/grabacabecerafirma.asp?nombre=AAAA";
document.getElementById("idPeticioX").value=execAjax(url,'true');
}
LLAMADA A LA FUNCION PRINCIPAL:
GrabacabeceraFirma();
ASP QUE ES LLAMADO DESDE AJAX Y DEVUELVE UN ID QUE DEBO GUARDAR EN UN TEXTBOX:
- Código: Seleccionar todo
<%
nombre1=request.querystring("nombre")
SQL="insert into tabla (nombre) values (' " & nombre1 & " ')"
Conexion.execute SQL
SQL="select ID from tabla order by nombre desc;"
resultado=Conexion.getRecordSet SQL
response.write resultado
%>
NOTAS: He de decir que el ASP que pongo aquí está simplificado, pero la respuesta que retorna por sí solo es correcta. Es decir: si llamo a este ASP desde el navegador directamente ponendo la URL en la barra de direcciones: "http://miserver.com/ass/grabacabecerafirma.asp?nombre=AAAA", lo que recibo es: 12465
Ese número 12465 es el ID que debo guardar en el textbox.
Lo digo porque el error no está en el ASP. De hecho, al cabo de un rato de pasar por success, me aparece un alert que pone: "voy a devolver: 12465". La lástima es que ya es demasiado tarde, ya que seguidamente de esa llamada a Ext.Ajax, hago más llamadas a otras funciones con el valor del textbox, donde lamentablemente el success ya me ha llenado con un 'undefined'.
Entonces, mi problema es que NO SÉ COMO HACER PARA QUE EL SUCCESS ME DEVUELVA LA RESPUESTA DEL ASP. NECESITO QUE ESPERE A QUE EL ASP DEVUELVA EL VALOR DEL ID DE LA BBDD.
¿Puede alguien ayudarme por favor? Despues de buscar en un montón de foros y en sencha-com, no logro encontrar respuesta!
Gracias de antemano y saludos.

