Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[ZF] Problemas con AjaxContextSwitch y Jquery

Estas en el tema de [ZF] Problemas con AjaxContextSwitch y Jquery en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Saludos He querido implementar un grid con Jquery y he utilizado AjaxContextSwith con contexto Json Código PHP: public function  init ()    {                  $ajaxContext  =  $this -> ...
  #1 (permalink)  
Antiguo 13/02/2010, 12:08
Avatar de oswaldochc  
Fecha de Ingreso: octubre-2009
Ubicación: Ecuador
Mensajes: 41
Antigüedad: 14 años, 6 meses
Puntos: 1
[ZF] Problemas con AjaxContextSwitch y Jquery

Saludos

He querido implementar un grid con Jquery y he utilizado AjaxContextSwith con contexto Json

Código PHP:
public function init()    {        
        
$ajaxContext $this->_helper->getHelper('AjaxContext');        
        
$ajaxContext->addActionContext('list''json')            
            ->
initContext();    
    } 
Mi Action

Código PHP:
public function listAction()
    {        
        
$mdl = new Model_MyModel();
        
$array =  mdl->getDatosPublicaciones();                            
        
$this->getResponse()->setHeader('Content-Type','application/json');
        
$this->view->variabledevista $this->arrayForJqGrid($array$response);            
    } 
el problema consiste en la transformacion de los datos a json en la que devuelve esto

Código PHP:
["variabledevista":{"page":1,"total":1,"records":0,"rows":[{"id":1,"cell":[1,"Esta es una imagen","Esta es la descripcion","Este es el adjunto"]}]}] 
y se requiere esto

Código PHP:
{"page":1,"total":1,"records":0,"rows":[{"id":1,"cell":[1,"Esta es una imagen","Esta es la descripcion","Este es el adjunto"]}]} 
Agradeciendo sus respuestas....
  #2 (permalink)  
Antiguo 13/02/2010, 15:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: [ZF] Problemas con AjaxContextSwitch y Jquery

Que hace tu función arrayForJqGrid y como esta tu vista?

Saludos.
  #3 (permalink)  
Antiguo 13/02/2010, 16:53
Avatar de oswaldochc  
Fecha de Ingreso: octubre-2009
Ubicación: Ecuador
Mensajes: 41
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: [ZF] Problemas con AjaxContextSwitch y Jquery

Saludos, gracias por responder
la funcion arrayForJqGrid simplemente manipula el array del model y lo transforma en un array q al ser convertido en Json es entendido por el grid, en este caso le envio directo los datos y no el del array del model
Código PHP:
public function arrayForJqGrid($arreglo$response)
    {    
        
$response->page 1;
        
$response->total 1;
        
$response->records count($arreglo);
        
$i 0;
                
$response->rows[$i]['id'] = 1
        
$response->rows[$i]['cell'] = array( 1,
            
'Esta es una imagen''Esta es la descripcion''Este es el adjunto');
                
$i++;
        return 
$response;
    } 
Lo que pasa es lo siguiente, en el action (list) a lo que se transforma a json (por el AjaxContext); me devuelve el json con el nombre de la variable de vista incluido ( "variabledevista" en la descripcion del problema, ver arriba)

Sera problema del AjaxContext

Agradeciendo sus respuestas........
  #4 (permalink)  
Antiguo 13/02/2010, 23:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: [ZF] Problemas con AjaxContextSwitch y Jquery

De hecho viendo el código de ContextSwitch.php en el Zend Framework, lo que hace es codificar usando las variables de la vista:
Código PHP:
Ver original
  1. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
  2.         $view = $viewRenderer->view;
  3.         if ($view instanceof Zend_View_Interface) {
  4.             /**
  5.              * @see Zend_Json
  6.              */
  7.             if(method_exists($view, 'getVars')) {
  8.                 require_once 'Zend/Json.php';
  9.                 $vars = Zend_Json::encode($view->getVars());
  10.                 $this->getResponse()->setBody($vars);
  11.             } else {
  12.                 require_once 'Zend/Controller/Action/Exception.php';
  13.                 throw new Zend_Controller_Action_Exception('View does not implement the getVars() method needed to encode the view into JSON');
  14.             }
  15.         }

Lo que puedes hacer en este caso si requieres ese formato es simplemente hacer algo así:
Código PHP:
Ver original
  1. $this->getResponse()->setHeader('Content-Type','application/json');
  2. $array = Zend_Json::encode($this->arrayForJqGrid($array, $response););
  3. $this->getResponse()->setBody($vars);

Saludos.
  #5 (permalink)  
Antiguo 17/02/2010, 09:37
Avatar de oswaldochc  
Fecha de Ingreso: octubre-2009
Ubicación: Ecuador
Mensajes: 41
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: [ZF] Problemas con AjaxContextSwitch y Jquery

Gracias Amigo...
  #6 (permalink)  
Antiguo 17/02/2010, 18:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Respuesta: [ZF] Problemas con AjaxContextSwitch y Jquery

Esto se podría hacer también con la función 'getJSON' de jquery, no?
  #7 (permalink)  
Antiguo 17/02/2010, 20:35
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: [ZF] Problemas con AjaxContextSwitch y Jquery

Cita:
Iniciado por principianteZF Ver Mensaje
Esto se podría hacer también con la función 'getJSON' de jquery, no?
getJSON solamente espera una respuesta en JSON, pero no la genera, eso lo haces del lado del servidor con alguno de los metodos que estuvieron explicando en este post :)

Etiquetas: jquery
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 00:41.