Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/09/2010, 08:09
harryems
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 8 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.