Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-04-2010 00:21:17

lassoya
Membre
Date d'inscription: 26-12-2009
Messages: 87

Recherche avec Zend Paginator

bonsoir j'utilise un petit formulaire de recherche et Zend Paginator,
mais mon problème est que j'aimerai ajouter dans  les urls  de mes liens de paginations un paramètre
de recherche

exemple :
<< 1 2 3 >>
des que l'on va sur la page 2 = http://www.monsite.com/recherche/larecherche/page/2


j'ai voulu ajouter ce parametre dans mon fichier paginator.phtml , mais cela ne marche pas

exemple dans mon controlleur  je tape ca
$parametres = $this->getRequest()->getParams();
$this->view->recherche =$parametres['recherche'];

et dans ma page paginator.phtml
pas moyen d'afficher

$this->recherche;

quelqu'un aurait une idée ??

Hors ligne

 

#2 25-04-2010 10:25:17

padapara
Membre
Date d'inscription: 25-03-2010
Messages: 10

Re: Recherche avec Zend Paginator

C'est le paramètre 'page' que tu veux et non pas recherche...

Hors ligne

 

#3 25-04-2010 14:15:11

lassoya
Membre
Date d'inscription: 26-12-2009
Messages: 87

Re: Recherche avec Zend Paginator

page je l'ai , non le problème est que si je clique sur page 2 et qu'il n'y a pas de paramètre recherche, et ben il va m'afficher tous les resultats sans les filtrer avec le paramètre recherche

exemple je veux afficher tous les utilisateurs administrateurs.

on va m'afficher tous les administrateurs sur plusieurs pages, mais dès que je cliquerai sur la page 2 ben ils ne seront plus filtrés  d'où le souhait de mettre dans l'url le parametre recherche

Hors ligne

 

#4 25-04-2010 19:46:55

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Recherche avec Zend Paginator

Transmet la en sessions peut etre.

Hors ligne

 

#5 26-04-2010 08:57:23

lassoya
Membre
Date d'inscription: 26-12-2009
Messages: 87

Re: Recherche avec Zend Paginator

Ben oui mais après comment je fais pour savoir quand je dois vider cette variable de session ??
parce que imaginons que je change de page après avoir fait une recherche , puis je  revienne sur cette page  de recherche les informations seront tjrs filtrées ?

ben je vais voir, je vais essayer avec une variable de session on verra bien ^^

Hors ligne

 

#6 26-04-2010 10:47:35

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Recherche avec Zend Paginator

Je suppose que tu as un fichier pagination.phtm et que tu génères tes urls comme ca :
<a href="<?= $this->url(array('page' => $this->first)); ?>">
(si tu as copié la doc du ZF)
Si tu veux rajouté un paramètre, tu rajoutes un élément dans ton tableau :
<a href="<?= $this->url(array('page' => $this->first, 'truc' => 'machin')); ?>">


----
Gruiiik !

Hors ligne

 

#7 27-04-2010 09:38:40

lassoya
Membre
Date d'inscription: 26-12-2009
Messages: 87

Re: Recherche avec Zend Paginator

oui ça je sais mais pour faire passer mon champs recherche : du controlleur à la vue ça ne marche pas,

j'ai essayé $this->view->recherche = $parametres['recherche'];
ou encore on sait jamais :p
$paginator->recherche = $parametres['recherche'];

mon lien est comme ça http://monsite.com/controlleur/action/recherche/id

je suis obligé de récupérer les parametres dans le controlleur
$parametres = $this->getRequest()->getParams();
et d'essayer de le faire passer à la vue

Hors ligne

 

#8 27-04-2010 11:06:17

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: Recherche avec Zend Paginator

Voilà ce que j'ai fait :

Code:

class ND_View_Helper_Url extends Zend_View_Helper_Url{
    
    static private $_disallowParams = array(
                                         'module'
                                       , 'controller'
                                       , 'page'
                                       , 'action'     
                                        );
    
    
    public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true){
        
        $params = Zend_Controller_Front::getInstance()->getRequest()->getParams() ;
        $myParam  = array();
        foreach( $params as $key => $value ){            
            if ( strlen($value) > 0 && ! in_array($key, self::$_disallowParams)){
                $myParam[$key] = $value ;
            }
        }        
        return parent::url($urlOptions, $name, $reset, $encode).'?'.http_build_query($myParam);
        
    }
    
}

C'est un cas fait rapidement pour résoudre cette problématique mais cela ne fonctionnera que si le formulaire de recherche est en GET. Ce qui devrait être pour moi toujours le cas.

En esperant que ca t'aide

Hors ligne

 

#9 28-04-2010 08:33:10

lassoya
Membre
Date d'inscription: 26-12-2009
Messages: 87

Re: Recherche avec Zend Paginator

merci j'ai utilisé le
$params = Zend_Controller_Front::getInstance()->getRequest()->getParams() ;
dans la vue de la pagination comme ca  je récupère les parametres ^^  ca marche nickel wink merci

Hors ligne

 

#10 11-08-2010 03:25:52

selecto16
Membre
Date d'inscription: 03-07-2010
Messages: 19

Re: Recherche avec Zend Paginator

@lassoya: tu pouvais utiliser tout simplement la variable $_SERVER['QUERY_STRING'] dans ton pagination.phtml, que tu colles à

Code:

 url(array('page'=>$page.'?'.$_SERVER['QUERY_STRING']))

smile

Hors ligne

 

#11 11-08-2010 20:49:39

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Recherche avec Zend Paginator

selecto16 > Salut, le "getParams()" à des avantages intéressants par rapport au "$_SERVER['QUERY_STRING']" :
- certains éléments du framework, comme les aides d'action et les plugins peuvent modifier, filtrer et compléter les paramètres
- si on exécute plusieurs actions l'une après l'autre, on peut avoir des listes de paramètres différents pour chaque action
- le getParams() est sous forme de tableau alors que le QUERY_STRING est une chaine formaté. Il est plus facile de changer certaines valeurs comme le numéro de page quand c'est sous forme de tableau.

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