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

Zend Framework PHP Discussion :

Quelle est la meilleure manière de créer une url à partir du GET


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut Quelle est la meilleure manière de créer une url à partir du GET
    Je voudrais créer plusieurs liens à partir de requête de que je reçcois.
    Je m'explique, j'ai un formulaire de recherche qui fonctionne avec le $_GET.
    Ce formulaire contient plusieurs champs cachés qui servent au tri et à la pagination des resultats.

    Voici un exemple d'url que je recois:
    www.monsite.com/place/search?keyword=test&go=+&order=publicationDate&videoFirst=1

    Dans la page de résultat, je veux créer différents liens qui premettent à l'utilisateur de trier différemment les résultat, genre:

    trier sur le budget
    www.monsite.com/place/search?keyword=test&go=+&order=budget&videoFirst=1

    trier sans les vidéos en premier
    www.monsite.com/place/search?keyword=test&go=+&order=publicationDate&videoFirst=0

    J'ai tenté d'utilisé le helper de vue 'url', mais je ne vois pas comment configurer la partie GET de l'url.

    Qqun aurait une idée ?

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir,

    As-tu déjà mis en place l'url rewriting afin d'obtenir une url sans extension ?
    www.monsite.com/place/search?keyword=test&go=+&order=publicationDate&videoFirst=0
    Aussi, dans la page search il te suffit de récupérer les valeurs qui sont passées en paramètre, si elle sont valorisées tu les traites, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(isset($_GET['keyword'])){
        $sql = 'SELECT * FROM articles WHERE keyword="'.$_GET['keyword'].'"';
        if(isset($_GET['order'])){
            $sql .= ' ORDER BY '.$_GET['order'].' '.(isset($_GET['go']) && $_GET['go'] == '+') ? 'DESC' : 'ASC' ;
        }   
        mysql_query($sql);
    }
    else{
        echo 'Saisissez un mot clé';
    }
    Code non testé.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    Bonsoir ThomasR,

    En gros j'utilise tout l'environement de ZF avec le Zend_Controller_Front et même Zend_Layout, j'ai défini mes routes, etc...

    Mon soucis n'est pas de récupérer les paramètres de recherche dans le controller mais plutot d'arriver à générer dans la view des liens qui gardent ces paramètres. Il existe une aide de vue 'url()' pour cela mais elle zap le $_GET.

    Je voudrais, dans ma vue faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?= $this->url(array('order' => 'budget')) ?>"> trier par burget </a>
    Mais ceci ne marche pas ...

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Crée un view_helper perso en lui passant en paramètre un tableau de ton GET ($attribs par exemple), comme _forward par exemple.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    Pour le helper, c'est une idée.
    Mais je ne sais si j'ai accès à l'object request dans les aides de vue.

    Sinon, je pourrais travailler dans le controller même, mais je ne sais pas si il existe une méthode de Zend_Controller_Request qui permet d'assembler une url à partir des variable qui lui sont définies ...

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Il suffit que dans le controller tu affectes à ta vue les paramètres.

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/03/2014, 19h46
  2. Quelle est la meilleure solution pour créer des Web Services?
    Par Flipmode dans le forum Services Web
    Réponses: 1
    Dernier message: 26/04/2007, 15h12
  3. Réponses: 2
    Dernier message: 19/03/2007, 16h41
  4. Réponses: 3
    Dernier message: 09/05/2006, 15h16
  5. Copie disque à disque. Quelle est la meilleur manière ?
    Par olive_le_malin dans le forum Autres Logiciels
    Réponses: 20
    Dernier message: 19/02/2006, 00h32

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