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 => 30, 50 => 50, 100 => 100, 150 =>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 => 30, 50 => 50, 100 => 100, 150 =>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.