Hola gente, estoy intentando hacer algo con ajax y no me funciona.
Acá les dejo el código a ver si me pueden ayudar, lo reduje al mínimo para ver donde estaba el problema y al parecer no devuelve $respuesta->set($a), por que el alert(‘a’) si funciona.
gracias!
function extender_objeto_js(){
$this->js_verificar();
}
function ajax__control($parametros, toba_ajax_respuesta $respuesta){
$a = array('a'=>'b', 'c'=>'d');
$respuesta->set($a);
}
function js_verificar(){
echo "
{$this->objeto_js}.evt__cambiar_tab__siguiente = function() {
//--- Construyo los parametros para el calculo, en este caso son los valores del form
var parametros = 'a';
//--- Hago la peticion de datos al server, la respuesta vendra en el método this.actualizar_datos
this.ajax('control', parametros, this, this.actualizar_datos());
//--- Evito que el mecanismo 'normal' de comunicacion cliente-servidor se ejecute
return false;
}
{$this->objeto_js}.actualizar_datos = function(datos){
var hh = datos['a'];
alert(hh);
}
";
}
fijate que en la invocacion a la llamada ajax… como ultimo parametro no le estas pasando la funcion a la que debe retornar… sino que estas invocando a la funcion.
Siendo ese el caso, se estaria invocando antes de hacer el pedido ajax… y por eso podria parecer que no hay respuesta.
Por otro, segun veo de la imagen que me adjuntaste… pareciera que envie los datos o no, el server esta respondiendo con un error 500 - Internal Server Error… fijate que esta pasando en el log del server, no deberia devolver ese error code.
Tene en cuenta que los browser actuan segun eso, en dicho caso no creo que haga nada el browser cuando le llega ese code.