Ver Mensaje Individual
  #14 (permalink)  
Antiguo 04/05/2013, 15:48
mandygr87
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema zend paginator

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)); ?>">
    &lt; Anterior
  </a> |
<?php else: ?>
  <span class="disabled">&lt; 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 &gt;
  </a>
<?php else: ?>
  <span class="disabled">Siguiente &gt;</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