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

Ajax en zend framework.

Estas en el tema de Ajax en zend framework. en el foro de Zend en Foros del Web. Que tal !!! Tengo una aplicacion que me busca la informacion de un usuario y me la muestra en la pantalla luego de digitar la ...
  #1 (permalink)  
Antiguo 12/04/2010, 13:48
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Ajax en zend framework.

Que tal !!!

Tengo una aplicacion que me busca la informacion de un usuario y me la muestra en la pantalla luego de digitar la cedula de este, esa funcionalidad la consigo de la siguiente manera:

- Tengo un formulario donde se ingresa la cedula del usuario entre otras cosas.
- Luego de ingresar la cedula capturo el evento onblur de ese campo e invoco una funcion javascript con el valor de la cedula.

La función javascript es esta:
Código:
function cargarUsuario(cedula)
{ 
    xmlHttp=GetXmlHttpObject()
    var recurso="buscarUsuario.php"
    recurso=recurso+"?cedula="+cedula
    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}
En buscarUsuario realizo la consulta y construyo una tabla para mostrar la informacion, luego imprimo esta informacion en la pantalla.

Ahora, estoy tratando de obtener esta misma funcionalidad usando zend framework pero no lo logro, ya que no se como decirle que recurso no es buscarUsuario.php sino que busque este metodo dentro de un controlador y de alli capturar la respuesta para mostrarla.

Alguna sugerencia ?

Saludos.
  #2 (permalink)  
Antiguo 12/04/2010, 14:14
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Ajax en zend framework.

De esta manera le digo al campo que haga la llamada a la función javascript:}

Código:
$cedula = $form->createElement('text', 'cedula')->setLabel('Ingrese la cedula')
            ->setAttrib('onBlur', "cargarUsuario('$url' ,this.value);");
Asi recibo en el metodo javascript esa informacion:

Código:
function cargarUsuario(ruta,cedula)
{
    xmlHttp=GetXmlHttpObject()
    var recurso = ruta+'/usuarios/solicitud/buscarajax/id/'+cedula

    xmlHttp.onreadystatechange=stateChanged
    xmlHttp.open("GET",recurso,true)
    xmlHttp.send(null)
}
A manera de prueba estoy retornardo el mismo dato en el metodo buscarajaxAction

public function buscarajaxAction()
{
$this->_helper->viewRenderer->setNoRender();

$respuesta = array('juan','zapata');

return $respuesta;
}

En el javascript estoy imprimiendo el resultado de la busqueda pero me imprime todo el codigo del formulario, no lo que estoy enviando como respuesta.

Saludos.
  #3 (permalink)  
Antiguo 12/04/2010, 14:26
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Ajax en zend framework.

Que tal.

En un controlador necesitas asignar a la vista los datos que requieres enviar al navegador o hacer un echo. Te recomiendo que asignes a la vista estos daots. Otra cosa: investiga sobre el Action Helper AjaxContext, este te permitira manejar las peticiones via XmlHTTPRequest de una manera mas sencilla y adecuada.
__________________
I see dead pixels
  #4 (permalink)  
Antiguo 12/04/2010, 14:32
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Ajax en zend framework.

Gracias por la sugerencia, voy a investigar al respecto.

Claro que me queda una duda: si asigno los datos a la vista para mostrarlos debo hacer un render, pero hacer un render seria como cargar la pagina y se perderia la ventaja de ajax o estoy equivocado ?

Saludos.

Última edición por juamd; 12/04/2010 a las 14:46
  #5 (permalink)  
Antiguo 12/04/2010, 17:29
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Ajax en zend framework.

Tienes que hacer un renderizado de los datos, pero este se hace en el servidor, y con javascript vas a procesar el resultado que te da el servidor, que podria ser json, xml, texto plano, etc.
__________________
I see dead pixels
  #6 (permalink)  
Antiguo 14/04/2010, 09:23
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Ajax en zend framework.

Que tal !!!!

He estado estudiando un poco acerca de ajaxContext pero tengo muchas dudas al respecto, primero que todo le indico al controlador en el init que un metodo sera trabajado con ajax :

Código PHP:
$ajaxContext $this->_helper->getHelper('AjaxContext');
        
$ajaxContext->addActionContext('buscarajax','html')
                    ->
initContext(); 
Luego declaro la funcion buscarajax, asi como el script buscarajax.ajax.phtml y buscarajax.phtml. En el metodo agregar de este mismo controlador creo un formulario con zend form, en este formulario le indico a la aplicacion que cargue con jquery la información asi :

Código:
$('#contenedor').load('/usuarios/solicitud/buscarajax/format/html');
Problemas:

- Según la teoria la aplicación busca el script buscarajax.ajax.phtml para ser mostrado, pero si no creo el script buscarajax.phtml me genera el error, entonces tengo que crear este script y dentro incluir el buscarajax.ajax.phtml.

- La aplicación funciona igual con el jquery que sin el.

Alguna sugerencia.

Saludos.

Etiquetas: ajax, framework
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 16:16.