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

Zend tratando de usar redirect con parametros

Estas en el tema de Zend tratando de usar redirect con parametros en el foro de Zend en Foros del Web. Espero poder explicarme bien, y tomen en cuenta que no soy ningun guru del Zend, ni de php. tengo una pagina en la que saco ...
  #1 (permalink)  
Antiguo 02/09/2010, 08:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 14 años, 3 meses
Puntos: 4
Zend tratando de usar redirect con parametros

Espero poder explicarme bien, y tomen en cuenta que no soy ningun guru del Zend, ni de php.


tengo una pagina en la que saco unos query de una base de datos, los proceso, y los muestro en un grid. hasta ahi todo iba bien.

pero el problema es cuando debo de poner algunos parametros en los query que saco de la base.
lo que hice fue generar un form, donde pongo los textbox y combos, busco y sustituyo los parametros, genero el grid. el problema es al refrescar el grid, o tratar de cambiar de pagina, etc, porque refresca la direccion, y asi como lo estoy haciendo, me vuelve a pintar el form donde pido los parametros, no se si me explique.

estos son las acciones que tengo. estoy totalmente abierto a propuestas.



este fue mi primer intento:


application/controllers/siteController.php
Código PHP:
    public function detgaratiasAction()
    {
        
$request $this->getRequest(); 
        
$opcionesform = new Application_Forms_Detgarantia();
        
$errorMessage "";
        if (
$request->isPost())
        {
           if(
$opcionesform->isValid($request->getPost()))
            {
                
$anio=$opcionesform->getValue('anio');
                
$mes=$opcionesform->getValue('mes');
                
$dia=$opcionesform->getValue('dia');
                
$anio '\''.$anio.'\'';
                
$mes '\''.$mes.'\'';
                
$dia '\''.$dia.'\'';
                
$result $this->generaSQL('1');    
                
$result = (string)$result;
                
$result =  str_replace ('@anio@',$anio,$result);
                
$result =  str_replace ('@mes@',$mes,$result);
                
$result =  str_replace ('@dia@',$dia,$result);
                
$rows $this->_db2->fetchAll($result);
                
$grid $this->grid();
                
$grid->setSource(new Bvb_Grid_Source_Array($rows));
                
$grid->setNumberRecordsPerPage(50);
                
$grid->setPaginationInterval(array(30 => 3050 => 50100 => 100150 =>150,200 =>200));
                
$grid->setAjax('ajax_grid');
                
$this->view->pages $grid->deploy();
                
$this->render('index');
            }
        }
         
$this->view->errorMessage $errorMessage;  
         
$this->view->opcionesform =  $opcionesform
    } 


Este fue mi segundo intento, pero no logro pasarle el array

application/controllers/siteController.php
Código PHP:

    
public function detgaratiasAction()
    {
        
$request $this->getRequest(); 
        
$opcionesform = new Application_Forms_Detgarantia();
        
$errorMessage "";
        if (
$request->isPost())
        {
           if(
$opcionesform->isValid($request->getPost()))
            {
                
$anio=$opcionesform->getValue('anio');
                
$mes=$opcionesform->getValue('mes');
                
$dia=$opcionesform->getValue('dia');
                
$anio '\''.$anio.'\'';
                
$mes '\''.$mes.'\'';
                
$dia '\''.$dia.'\'';
                
$result $this->generaSQL('1');    
                
$result = (string)$result;
                
$result =  str_replace ('@anio@',$anio,$result);
                
$result =  str_replace ('@mes@',$mes,$result);
                
$result =  str_replace ('@dia@',$dia,$result);
                
$rows $this->_db2->fetchAll($result);
                
$this->_redirect('site/visualiza');
            }
        }
         
$this->view->errorMessage $errorMessage;  
         
$this->view->opcionesform =  $opcionesform
    }
    
    
    public function 
visualizaAction()
    {
        
$grid $this->grid();
        
$grid->setSource(new Bvb_Grid_Source_Array($rows));
        
#$grid->setDetailColumns();
        #$grid->setTableGridColumns('array('.$campos.')');
        
$grid->setNumberRecordsPerPage(50);
        
$grid->setPaginationInterval(array(30 => 3050 => 50100 => 100150 =>150,200 =>200));
        
$grid->setAjax('ajax_grid');
        
$this->view->pages $grid->deploy();
        
$this->render('index');
    } 

se que no lo he hecho de la forma mas limpia y optima, por eso pido no solo ayuda con lo que quiero hacer, sino propuestas, y comentarios.
  #2 (permalink)  
Antiguo 02/09/2010, 08:57
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: Zend tratando de usar redirect con parametros

Genera el form por GET en lugar de POST y así no vas a perder los parámetros.

Saludos.
  #3 (permalink)  
Antiguo 02/09/2010, 09:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Zend tratando de usar redirect con parametros

lo logre hacer con variables de sesion. subi mi query ya con los parametros del usuario.

mil gracias, seguire aprendiendo mas Zend, para dejar mi codigo mas limpio, cuando quede algo mas formal, lo posteo para quien le resulte util.


como es para mi trabajo, y es asi como me lo han ido pidiendo, he metido muchas cosas en las bases de datos, como en este caso los querys. ahora tambien voy a meter los parametros que necesitan a otra tabla, como en este caso los textbox y combo.

supongo que alguien ya debe de teenr algo asi, o quiza no es la mejor forma de manejar el zend, pero aqui estan enamorados de la bases de datos, y no he encontrado algo parecido en SanGoogle.

un saludo y gracias

Etiquetas: render, _redirect, zend-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 01:40.