Foros del Web » Programando para Internet » PHP » Zend »

Consulta sobre Zend FrameWork y Prototype

Estas en el tema de Consulta sobre Zend FrameWork y Prototype en el foro de Zend en Foros del Web. Hola chicos, estoy tratando de implementar Ajax en Zend a traves de Prototype y JSON. Mi idea es primero hacer un script bien basico, para ...
  #1 (permalink)  
Antiguo 05/08/2008, 21:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Exclamación Consulta sobre Zend FrameWork y Prototype

Hola chicos, estoy tratando de implementar Ajax en Zend a traves de Prototype y JSON.
Mi idea es primero hacer un script bien basico, para captar la idea. Lo que intento hacer, es que desde un boton en una pagina html dentro del Zend framework, al hacerle click, a traves de ajax, se comunica con un controlador, y este le devuelve a traves de Jason el valor de una variable.
Para esto realize lo siguiente:

Codigo mi controlador de Zend (donde el ajax le va a pedir el valor de la variable)

Código:
public function ajaxAction() {
 $this->_helper->viewRenderer->setNoRender(true);
 Zend_Loader::loadClass('Zend_Json');
 $respuesta= "Probando Ajax";
 $jsonData = Zend_Json::encode($respuesta);
}
y este es mi codigo javaScript.

Código:
function pruebaAjax2()
{
    var url = "http://localhost/LibreriaVirtualV3/document_root/administracion/categorias/ajax";
    var ajx =  new Ajax.Request (url,
     {
       method:"post",
      onSuccess: getResponse  
      }
   );
}

function getResponse(jsonData)
{
    var data = transport.responseText.evalJSON(true);  
    //Con esta linea, identifica el div prueba para poder modificarlo con el innerHtml.//
    contenedor = document.getElementById("prueba");
    contenedor.innerHTML =  data;
}
El problema, es que no me funciona, hay algo que me falta, que nose que es.
Me podrian dar una mano?.


Desde ya, un abrazo.
  #2 (permalink)  
Antiguo 05/08/2008, 21:31
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Respuesta: Consulta sobre Zend FrameWork y Prototype

Prueba de esta manera
Código PHP:
    public function ajaxAction() 
    {
        
$this->_helper->layout->disableLayout();
        
$this->_helper->viewRenderer->setNoRender(true);
        
Zend_Loader::loadClass('Zend_Json');
        
$respuesta"Probando Ajax";
        
$jsonData Zend_Json::encode($respuesta);
        
$this->getResponse()->appendBody($jsonData);// linea aumentada
    

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 05/08/2008, 21:41
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Consulta sobre Zend FrameWork y Prototype

Gracias por tu respuesta, he colocado lo que me has recomendado y no funciona, tal vez sea algun error por parte del codigo de javascript.

Que opinan?Alguna otra idea?
  #4 (permalink)  
Antiguo 06/08/2008, 07:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Consulta sobre Zend FrameWork y Prototype

Prueba hacer un alert( data ); para ver si estas recibiendo los datos correctos.

Saludos.
  #5 (permalink)  
Antiguo 06/08/2008, 08:18
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Consulta sobre Zend FrameWork y Prototype

al Hacer alert(data). No funciona, es porque seguramente no recibi los datos.
El problema es esta linea,
var data = transport.responseText.evalJSON(true);

Por ejemplo si pongo Alert("hola"), no funciona, pero si borro la linea, funciona. Es decir, que al parecer no recibe la informacion.

Alguna idea?
  #6 (permalink)  
Antiguo 06/08/2008, 08:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Consulta sobre Zend FrameWork y Prototype

Prueba antes de esa linea hacer alert( transport.responseText );

Saludos.
  #7 (permalink)  
Antiguo 06/08/2008, 08:32
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Consulta sobre Zend FrameWork y Prototype

Hola, mira ya encontré el error, el error es que no hay que usar transport, sino
jsonData. Les dije que me parecia que algo en javascript estaba mal en mi codigo.
Gracias por ayudarme a resolverlo.


Un abrazo.
  #8 (permalink)  
Antiguo 26/08/2008, 19:07
 
Fecha de Ingreso: noviembre-2005
Ubicación: El Salvador
Mensajes: 13
Antigüedad: 19 años
Puntos: 0
Respuesta: Consulta sobre Zend FrameWork y Prototype

Hola, puedes usar transport yo tuve el mismo interes que tu, esta es una funcion que me devuelve el contenido de una tabla para generar al menu.

Código PHP:
    public function cargarmenuAction ()
    {
        
$this->_helper->viewRenderer->setNoRender(true); //Desactiva la Vista
        
$this->_helper->layout->disableLayout(); // Desactiva el Layout
        
$this->categorias = new default_models_Categorias();
        
$this->menu $this->categorias->fetchAll();
        
$i 0;
        
        foreach (
$this->menu as $categoria)
        {
            
$data[$i] = array(
                
'id' => $categoria->id,
                  
'categoria' => $categoria->categoria
            
);
            
$i++;
        }
        
$this->_helper->json->sendJson($data);
    } 
Este codigo a mi me funciona y el codigo javascript es un Ajax.Request normal
  #9 (permalink)  
Antiguo 28/08/2008, 07:47
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Consulta sobre Zend FrameWork y Prototype

Buenisimo, cuando tenga un tiempito,voy a analizarlo a ver como me sale.
Muchas Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:49.