toba ajax no funciona

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);
    }            
  ";
} 

me olvide … estoy con toba 2.3.6

Hola Alfredo,

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.

Quizas ese sea el conflicto.

Saludos

Hola ricardo, ya probe de otras formas como


this.ajax('control', parametros, this, this.actualizar_datos);
this.ajax('control', parametros, this, {$this->objeto_js}.actualizar_datos);

y sigue sin funcionar…

La funcion php que devuelve los datos se ejecuta y devuelve bien los datos.
Adjunto una imagen del depurador js de firefox por si ayuda de algo.

Gracias!


toba.JPG

toba.JPG_thumb.png

Hola Alfredo,

por un lado, esta seria la forma correcta de llamarlo:


this.ajax('control', parametros, this, this.actualizar_datos);

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.

Saludos