Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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:
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
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
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
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