Vuelto otra vez por aquí.... Creo que ya me funciona,sólo que me ha surgido un nuevo problema. Pongo lo que he hecho para que me funcione.
En el controlador:
Código PHP:
$busqueda = new Application_Form_Busquedausuario();
$this->view->busqueda = $busqueda;
if ($this->getRequest()->isGet()) {
$formData = $this->getRequest()->getQuery();
if($busqueda->isValid($formData)){
if($this->_hasParam('dni')&&$this->_hasParam('nombre')&&$this->_hasParam('apellidos')&&$this->_hasParam('provincia')&&$this->_hasParam('rol')){
$dni=$this->_getParam('dni');
$nombre = $this->_getParam('nombre');
$apellidos=$this->_getParam('apellidos');
$provincia=$this->_getParam('provincia');
$rol=$this->_getParam('rol');
$buscar =$this->_getParam('Buscar');
$filtros = array();
$filtros['dni']=$dni;
$filtros['nombre']=$nombre;
$filtros['apellidos']=$apellidos;
$filtros['provincia']=$provincia;
$filtros['rol']=$rol;
$filtros['Buscar']=$buscar;
$this->view->filtros = $filtros;
$this->view->formdata =$formData;
if(empty($dni)){
$dni='%';
}
if(empty($nombre)){
$nombre='%';
}
if(empty($apellidos)){
$apellidos='%';
}
$usuario= new Application_Model_DbTable_Usuario();
$rows =$usuario->buscausuarios($dni,$nombre,$apellidos,$provincia,$rol);
$Paginator = Zend_Paginator::factory($rows);
$Paginator->setItemCountPerPage(1);
if($this->_hasParam('page')){
$Paginator->setCurrentPageNumber($this->_getParam('page',1));
}
$this->view->paginator=$Paginator;
}
En la vista:
Código PHP:
echo $this->paginationControl($this->paginator, 'Sliding', 'paginator/items.phtml',$this->filtros);
En items.phtml
Código PHP:
<?php $filtros = $this->filtros;?>
<!--
See http://developer.yahoo.com/ypatterns/pattern.php?pattern=searchpagination
-->
<?php if ($this->pageCount): ?>
<div class="paginationControl">
<!-- Previous page link -->
<?php if (isset($this->previous)): ?>
<a href="<?php echo $this->url(array('page' => $this->previous,'dni'=>$this->dni,'nombre'=>$this->nombre,'apellidos'=>$this->apellidos,'provincia'=>$this->provincia,'rol'=>$this->rol,'Buscar'=>$this->Buscar)); ?>">
< Anterior
</a> |
<?php else: ?>
<span class="disabled">< Anterior</span> |
<?php endif; ?>
<!-- Numbered page links -->
<?php foreach ($this->pagesInRange as $page): ?>
<?php if ($page != $this->current): ?>
<a href="<?php echo $this->url(array('page' => $page,'dni'=>$this->dni,'nombre'=>$this->nombre,'apellidos'=>$this->apellidos,'provincia'=>$this->provincia,'rol'=>$this->rol,'Buscar'=>$this->Buscar)); ?>">
<?php echo $page; ?>
</a> |
<?php else: ?>
<?php echo $page; ?> |
<?php endif; ?>
<?php endforeach; ?>
<!-- Next page link -->
<?php if (isset($this->next)): ?>
<a href="<?php echo $this->url(array('page' => $this->next,'dni'=>$this->dni,'nombre'=>$this->nombre,'apellidos'=>$this->apellidos,'provincia'=>$this->provincia,'rol'=>$this->rol,'Buscar'=>$this->buscar)); ?>">
Siguiente >
</a>
<?php else: ?>
<span class="disabled">Siguiente ></span>
<?php endif; ?>
</div>
<?php endif; ?>
Ahora el problema que me ha surgido es que en la url al volver a intentar hacer una nueva busqueda presionando en el boton submit se me agrega detras de la url que ya tenia quedando algo así.
http://localhost/asociacion/public/admin/consultarusuarios/page/2/dni//nombre//apellidos//provincia/%25/rol/%25?dni=&nombre=&apellidos=&provincia=%25&rol=%25& Buscar=Buscar
¿Cómo puedo limpiar la url para hacer una nueva búsqueda? He probado con:
$this->url(array('page' => $this->next,'dni'=>$this->dni,'nombre'=>$this->nombre,'apellidos'=>$this->apellidos,'provincia'=>$this->provincia,'rol'=>$this->rol,'Buscar'=>$this->buscar),null, true) en items.phtml pero así pierdo los datos y no me muestra nada