Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-08-2012 19:16:20

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

comment faire la pagination dans mon cas

Salut ,
J'ai dans mon layout un formulaire de recherche .Dans mon action recherche je veux fixer le nombre de resultat en  deux par page .S'il vous palit savez vous comment puis je faire ,car j'ai utilisé le zend paginator mais quand je clique sur suivant, il me renvoit  vers la page d'accueil de la ville.
Voilà mon action recherche:

Code:

   public function rechercheAction()
     {
         
         /*************Récupration des Parametres de la requete****************/
       
       $lang = $this->_getParam('lang');
       $registry = new Zend_Registry();
       $db=$registry->get('db');
       $translate = $registry->get('translator');
       $translate->removeCache();
       SessionHandler::langCookie($lang, $translate);
       $ville=$this->_request->getParam('ville')    ;
       $lieu=$this->_request->getParam('lieu')    ;
       $categorie=$this->_request->getParam('categorie')    ;
        /**********************les menus top et bottom******************************/
           $categRows=$db ->fetchAll($db -> select() -> from('categorie', array('categorie_id','categorie_titre','width'))->where('parent_id = ?','0'));
           $count=count($categRows);    

            /*********************************/ 
            if(($lieu) && !($categorie))
            
            {
                $this->_redirect('ville/index/ville/'.$lieu);
                
            }
            elseif(!($lieu)   && ($categorie)){
             
               $req=$db-> select() -> from('ville', array('ville_id','ville_meteo'))->where('ville_nom=?',$ville)->query()->fetch();
               $ville_id=$req->ville_id;
               $ville_meteo=$req->ville_meteo;    
            /***********************Sliders***************************************/
               $sliderRows = $db->fetchAll($db  ->select()->from(array('s' => 'slider'))
                                                  ->join(array('v' => 'ville'),'s.ville_id = v.ville_id')
                                                  ->where('s.ville_id = ?', $ville_id)
                                   );
    
               
               /**********************Requête de recherche********************************/
                $req1=$db -> select() -> from('categorie', 'categorie_id')->where('categorie_titre = ?',$categorie)->query()->fetch();
                $categ_id=$req1->categorie_id;
           
                $select=$db->fetchAll($db  ->select()->from(array('e' => 'etablissement'))
                                                      ->where('e.ville_id = ?', $ville_id)
                                                      ->where('e.categorie_id = ?', $categ_id)
                                       );
            
                 $this->view->ville=$ville;
                 $this->view->ville_id = $ville_id;
                 $this->view->ville_meteo=$ville_meteo;
                 $this->view->sliderRows=$sliderRows;
                 $this->view->select=$select;
                 $this->view->categRows=$categRows;
                 $this->view->count=$count;
            }
           
            elseif($lieu && $categorie)
            {
                $ville=$lieu;
                /**********************Informations ville*****************************/
                $req=$db-> select() -> from('ville', array('ville_id','ville_meteo'))->where('ville_nom=?',$ville)->query()->fetch();
                $ville_id=$req->ville_id;
                $ville_meteo=$req->ville_meteo;    
               /***********************Sliders***************************************/
                $sliderRows = $db->fetchAll($db  ->select()->from(array('s' => 'slider'))
                                                          ->join(array('v' => 'ville'),'s.ville_id = v.ville_id')
                                                          ->where('s.ville_id = ?', $ville_id)
                                           );
               
                /**********************Requête de recherche********************************/
                $req1=$db -> select() -> from('categorie', 'categorie_id')->where('categorie_titre = ?',$categorie)->query()->fetch();
                $categ_id=$req1->categorie_id;
                Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
                $select=$db->fetchAll($db  ->select()->from(array('e' => 'etablissement'))
                                                          ->where('e.ville_id = ?', $ville_id)
                                                          ->where('e.categorie_id = ?', $categ_id)
                                           );
                $paginator = Zend_Paginator::factory($select);
                $paginator->setCurrentPageNumber($this->_getParam('page',1)); 
                $paginator->setItemCountPerPage(2);
                                           
                $this->view->ville=$ville;
                $this->view->ville_id = $ville_id;
                $this->view->ville_meteo=$ville_meteo;
                $this->view->sliderRows=$sliderRows;
                $this->view->categRows=$categRows;
                $this->view->paginator = $paginator;
                $this->view->select=$select;
                $this->view->count=$count;
            }
            else 
            {  
                    $this->_redirect('ville/index/ville/'.$ville);
            }
        
        }

Merci bien.

Hors ligne

 

#2 15-08-2012 19:45:41

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: comment faire la pagination dans mon cas

salut,
Supposons que vos requêtes fonctionnent quoi que y a beaucoup à dire tant sur le fond que sur la forme.

Dans quel répertoire se trouve votre partial pagination.phtml? si ce partial se trouve dans le reperoire des scripts de vue faites-le précédé par le nom de ce répertoire.

Dernière modification par amiss (15-08-2012 19:46:13)

Hors ligne

 

#3 15-08-2012 22:50:19

aziza_1989
Membre
Date d'inscription: 31-05-2012
Messages: 58

Re: comment faire la pagination dans mon cas

amiss a écrit:

salut,
Supposons que vos requêtes fonctionnent quoi que y a beaucoup à dire tant sur le fond que sur la forme.

Dans quel répertoire se trouve votre partial pagination.phtml? si ce partial se trouve dans le reperoire des scripts de vue faites-le précédé par le nom de ce répertoire.

Salut,
Merci bien,mais le problème  c'est au niveau du traitement du formulaire,car les liens de pagination s'affichent bien,en plus quand je clique sur suivant normalement il doit me guider vers la page 2 or il me guide vers la page d'accueil ,c'est comme s'il considère  la première close if marquée en haut où seule la ville qui est entrée dans le formulaire.

Dernière modification par aziza_1989 (15-08-2012 22:51:22)

Hors ligne

 

#4 16-08-2012 12:44:54

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: comment faire la pagination dans mon cas

Vos if  évaluent des variables dont l'on ne sait pas si elles sont nulles, vides, définies.Essayer d'utiliser isset() ou empty() et puis procéder aux testes sans d'abord la pagination.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages