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 :

[ZEND] Problème URL & passage de variables.


Sujet :

Zend Framework PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut [ZEND] Problème URL & passage de variables.
    Bonjour à toute la communauté!

    Tout d'abords désolé si je ne suis pas sur la bonne section, j'ai essayé de prendre celle la plus adéquat à mon problème.
    Je suis un petit nouveau sur le ZF, et j'ai un petit soucis avec le passage de variable...
    Je vous explique ma situation :
    Je récupère une liste de client via ma DB sous forme de tableau, je l'affiche, c'est tout beau.
    J'ai rajouté un bouton "Supprimer" pour que le root puisse supprimer des clients aisément.

    J'ai donc une page "moderation" qui affiche le tableau tout beau, et le bouton :

    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
    <?php
                while ($donnees = $this->reponse->fetch())
                    {
                        if ($donnees['hotel_zone'] == 0)
                            $donnees['hotel_zone'] = "Paris";
                        else
                            $donnees['hotel_zone'] = "Province";
                            ?>
                        <tr>
                                <td style="border-top:1px solid grey"> <?php echo $donnees['id'];?></td>
                                  <td style="border-top:1px solid grey"> <?php echo $donnees['hotel_name'];?></td>
                                  <td style="border-top:1px solid grey" ><?php echo $donnees['id_availpro'];?></td>
                                  <td style="border-top:1px solid grey" ><?php echo $donnees['c_name'];?></td>
                                  <td style="border-top:1px solid grey" ><?php echo $donnees['c_email'];?></td>
                                  <td style="border-top:1px solid grey" ><?php echo $donnees['c_url'];?></td>
                                  <td style="border-top:1px solid grey" ><img src="<?php echo $this->baseUrl;?>/public/css/yes.gif"></td>
                                  <td style="border-top:1px solid grey" ><a href="<?php echo $this->url(array('controller'=>'moderation','action'=>'supprimer' , 'id' => $donnees['id']));?>"><img src="/public/img/no.png"></a>
                          </tr><?php
                    }
                    ?>
    La dernière cellule est la cellule de suppression, je lui demande d'envoyer la variable dans mon supprimerAction de mon ModerationController dont voici un bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function supprimerAction ()
        {
        echo $this->getRequest()->getParam('id');
    }
    Une fois que je clique sur mon bouton "Supprimer", sur ma page moderation/supprimer/ il m'affiche bien l'id du client et l'url est de la forme : "http://localhost/moderation/supprimer/id/1".

    Jusqu'a là, tout va bien.

    Le problème, c'est que quand je change de page. N'importe laquelle ! il m'affiche ma variable dans l'url !

    Ex : Je clique sur "Création d'hôtel", un autre onglet qui n'a aucun rapport avec le précédent, et il m'affiche :
    "http://localhost/creation/index/id/1".

    Je ne comprends pas, sachant que j'ai bien demander de me passer la variable QUE dans mon supprimerAction, que cela m'affiche la variable dans toutes mes autres urls...

    Si quelqu'un à une idée du problème car je suis royalement perdu la...

    Je me suis dis qu'il y avait peu être un problème de hiérarchie / d'envoi de données erronée entre mes 2 pages.

    Donc j'ai crée une nouvelle page vide, je lui est associé un Controller, et une page index.phtml.
    Sur mon layout j'ai mis un lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<?php echo $this->url(array('controller'=>'supprimer','action'=>'index));?>">
    et ..... BIM, toujours le même problème.

    Quand je clique sur mon onglet Supprimer (apres que je sois allé dans mes pages ou je passe les variables), j'obtiens : http://localhost/supprimer/id/1

    Même si je crée une nouvelle page, il suffit que je passe une variable d'une page a une autre pour que ma variable se retrouve dans TOUTES les urls de mon site...

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonjour,
    Je t'invite à regarder la documentation en ce qui concerne l'aide URL, elle prend un paramètre permettant de faire un reset sur l'URL.

    De plus, j'ai répondu à un autre genre de message identique il y a peu de temps sur le forum.

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    tu peu passé 3 paramètres a la fonction $this->url($url, $nom, $reset);
    pour ne pas avoir les anciens variable dans ton url le paramètre $reset doit être true par default il est false.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 50
    Par défaut
    Tu peux aussi, dans certains cas, faire :

    array(
    'controller' => 'machin',
    'id' => null
    );

    Cela évite d'avoir à préciser le module et le controlleur pour un même controlleur. Tu peux sinon aussi passer par GET (query pour ZF) qui te permettra toujours de récupérer la valeur avec getParam() mais ne sera plus une "userParam".

    Ex :

    Vue
    array('action'=>'del') . '/?id=' . $id;

    Controlleur
    $id = $this->getParam('id');

    A+

Discussions similaires

  1. [ZEND] Problème d'urls et passage de variable
    Par Kardz dans le forum Zend Studio
    Réponses: 0
    Dernier message: 23/05/2012, 11h50
  2. probléme concernant le passage des variable d'une page web à une autre
    Par aefmaaradji dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 13/08/2010, 19h27
  3. Problème lors du passage de variable
    Par popo dans le forum Flash
    Réponses: 1
    Dernier message: 14/01/2008, 11h46
  4. fopen url avec passage de variable
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 24/05/2007, 16h18
  5. Problème avec le passage de variable request.
    Par crocodingo dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 08/03/2007, 14h32

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