IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Zend Paginator, comment passer des paramètre dans l'url ? [ZF 1.9]


Sujet :

Autres composants PHP

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 126
    Par défaut Zend Paginator, comment passer des paramètre dans l'url ?
    Bonjour à tous,

    Actuellement, dans mon projet basé sur Zend Framework, je me sers de Zend Paginator.
    Dans le cadre de cette utilisation j'ai un besoin relativement simple mais qui pourtant pose problème.

    J'aurais besoin que dans les URL générées par Zend Paginator (les urls qui servent à aller à "la page 4" ou "La page suivante"), d'insérer des paramètre "GET"...
    Ces paramètres GET sont indispensables puisque ce sont eux qui me permettent de faire la requete sur les éléments à paginer...

    Ma question est donc la suivante :
    Comment passer des paramètres à Zend Paginator de façon à ce qu'il les place dans les URL générées ?

    Je vous remercie par avance pour votre aide.

    PS : Un autre développeur a le même problème que moi, ici :
    http://www.developpez.net/forums/d83...end_paginator/

    PS² : pour mon script de pagination j'ai suivi ce tutoriel :
    http://julien-pauli.developpez.com/t...ginator/#LIV-A
    J'ai tout mis en place, sauf le "rewriting" sur les URLs.

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 126
    Par défaut
    Solution temporaire et moche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php if ($this->pageCount): ?>
    <div id="paginationControl">
     
    <!-- Previous page link --> 
    <?php if (isset($this->previous)): ?> 
      <a href="<?php echo $this->url(array('page' => $this->previous))  ."?". $_SERVER["QUERY_STRING"]; ?>">&lt; <?php echo "précédent"; ?></a> | 
    <?php else: ?> 
      <span class="disabled">&lt; <?php echo "précédent"; ?></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)) ."?". $_SERVER["QUERY_STRING"]; ?>"><?php echo $page; ?></a> | 
      <?php else: ?>
        <span class="current"><?php echo $page; ?></span> | 
      <?php endif; ?>
    <?php
    //var_dump($this->url(array('page' => $page)));
    endforeach; ?>
     
    <!-- Next page link --> 
    <?php if (isset($this->next)): ?> 
      <a href="<?php echo $this->url(array('page' => $this->next))  ."?". $_SERVER["QUERY_STRING"]; ?>"><?php echo "suivant" ?> &gt;</a>
    <?php else: ?> 
      <span class="disabled"><?php echo "suivant" ?> &gt;</span>
    <?php endif; ?> 
    </div> 
    <?php endif; ?>
    Si quelqu'un a mieux, je suis preneur !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 30
    Par défaut
    J'ai fait comme ça :
    Dans le controller qui appelle le paginateur j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $paginator = Zend_paginator::factory("select * from ....");
    ...
    $paginator->filmId = $this->_getParam('filmId');
    dans le pagination.phtml ( le bandeau de pagination), evidement il faut rajouter les elements tu tableau à tout les autres liens (next, numero de la page, ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php if ($this->pageCount): ?>
    <div id="paginationControl">
     
    <!-- Previous page link --> 
    <?php if (isset($this->previous)): ?> 
      <a href="<?php echo $this->url(array('page' => $this->previous, 'filmId' => $this->filmId)); ?>">Previous</a> | 
    <?php else: ?> 
      <span class="disabled">&lt; <?php echo "précédent"; ?></span> | 
    <?php endif; ?>

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 126
    Par défaut
    Merci pour cette solution beaucoup plus élégante et conforme à l'utilisation de Zend Framework !

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Par défaut
    Salut !
    J'ai exactement le même soucis... sauf la solution ne marche pas pour moi ! Quelqu'un en aurais une autre ?

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 126
    Par défaut
    Citation Envoyé par matLethaL Voir le message
    Salut !
    J'ai exactement le même soucis... sauf la solution ne marche pas pour moi ! Quelqu'un en aurais une autre ?
    Après reflexion, la solution de chaby, est certes plus élégante, mais relativement complexe à mettre en place.

    En effet, la page de pagination (pagination.phtml) qu'il propose est simple dans son exemple.
    Mais si on a une application avec plusieurs controlleurs contenant plusieurs actions, et que potentiellement chacune de ces actions gère une pagination
    Alors comment la page de pagination (pagination.phtml) peut elle "savoir" quels paramètres ajouter aux URL générées ???

    L'avantage de ma solution, c'est qu'elle fonctionne dans tous les cas : je n'ai pas besoin de savoir quelles sont les variables passées en paramètres.

    Voici une légère amélioration de ma solution : (dont je me sers actuellement dans mon projet).
    Cette nouvelle version, est plus secure (utilisation de la méthode escape() (qui effectue un htmlspecialchar() par défaut)), cette version est aussi plus logique car elle ne concatène pas un "?" aux URLs générées quand il n'y a pas de valeurs passées en paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    $queryString = "";
    if(strlen($_SERVER["QUERY_STRING"]) > 0)
    {
    	$queryString = "?" . $this->escape($_SERVER["QUERY_STRING"]);
    }
    if ($this->pageCount)
    {
    ?>
    	<div id="paginationControl">
    	<!-- Previous page link -->
    	<?php
    	if(isset($this->first))
    	{
    		?>
    		<a href="<?php echo $this->url(array('page' => $this->first)) . $queryString; ?>"><?php echo "premier (" . $this->first . ")" ?></a>
    	 	<?php
    	}
    	else
    	{
    		?> 
    	  	<span class="disabled"><?php echo "(" . $this->first . ")" ?> </span>
    		<?php
    	}
    	?>
    	|
    	<?php if (isset($this->previous)): ?> 
    	  <a href="<?php echo $this->url(array('page' => $this->previous))  . $queryString; ?>">&lt; <?php echo "précédent"; ?></a> | 
    	<?php else: ?> 
    	  <span class="disabled">&lt; <?php echo "précédent"; ?></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)) . $queryString; ?>"><?php echo $page; ?></a> | 
    	  <?php else: ?>
    	    <span class="current"><?php echo $page; ?></span> | 
    	  <?php endif; ?>
    	<?php
    	//var_dump($this->url(array('page' => $page)));
    	endforeach; ?>
     
    	<!-- Next page link --> 
    	<?php if (isset($this->next)){ ?> 
    	  <a href="<?php echo $this->url(array('page' => $this->next))  . $queryString; ?>"><?php echo "suivant"; ?> &gt;</a>
    	<?php }else { ?> 
    	  <span class="disabled"><?php echo "suivant" ?> &gt;</span>
    	<?php } ?>
    	|
    	<?php
    	if(isset($this->last))
    	{
    	?>
    	 <a href="<?php echo $this->url(array('page' => $this->last))  . $queryString; ?>"><?php echo "dernier (" . $this->last . ")";?></a>
    	 <?php }else { ?> 
    	  <span class="disabled"><?php echo "(" . $this->last . ")" ?></span>
    	 <?php } ?>
    	</div> 
    <?php
    }
    ?>

  7. #7
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Par défaut
    OK !
    ça marche !
    merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008R2] Impossible de passer des paramètres dans l'URL du rapport
    Par martial80 dans le forum SSRS
    Réponses: 21
    Dernier message: 31/05/2012, 17h46
  2. Comment passer des paramètres dans une EL ?
    Par verbose dans le forum JSF
    Réponses: 1
    Dernier message: 01/09/2011, 11h35
  3. Comment passer des paramètres dans une requête XPATH
    Par SyLvErStOrM dans le forum BIRT
    Réponses: 18
    Dernier message: 29/04/2011, 11h08
  4. passer des paramètres dans l'URL
    Par bhs2009 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 06/08/2009, 11h39
  5. Passer des paramétres dans une URL
    Par adrix26 dans le forum SharePoint
    Réponses: 3
    Dernier message: 04/06/2008, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo