Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/02/2011, 11h42   #1
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Par défaut Paramètre d'URL qui persiste

Bonjour les Zenders !

Suite à ce message réactivant une de mes demandes d'il y a presque un an, j'ai mis en oeuvre la solution suggérée par Maïtre Pylos mais le paramètre passé dans l'URL persiste sur un lien qui pourtant ne l'inclut pas.

La vue appelante gereretablissements/ajouter.phtml contient un Zend_Form_Element_Select contenant la liste des types d'établissements existants en BDD, suivi d'un lien qui ouvre la vue gerertypesetablissements/ajouter avec en paramètre dans l'URL '/from/gereretablissements_ajouter', c'est à dire le contrôleur et l'action qui ouvre l'ajout d'un type d'établissement :
Code :
1
2
3
4
5
6
7
8
9
10
<form action="<?php echo $this->url(array('action'=>'ajouter')); ?>" method="post">
    <?php echo $this->form->etb_id_type_etablissement;?> 
    <a href="<?php echo $this->url(array('controller'=>'gerertypesetablissements', 
                                        'action'=>'ajouter',
                                        'from'=>'gereretablissements_ajouter'
                                        )
                                    )
    ;?>" >
        Ajouter un type d'établissement
    </a><br />
Dans le contrôleur gerertypesetablissements.php, j'ai ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public function ajouterAction()
    {
        $this->view->action = 'ajouter';
 
        // Recherche de la vue éventuelle qui a lancé l'action
        unset($source);
           $source = $this->_request->getParam('from');
 
//...
 
                // Redirection vers la vue source
                if(isset($source))
                {
                    // $source est du type 'controleur_action'
                    $param = explode('_', $source);
                    $cible = $param[0].'/'.$param[1].'/te_id/'.$te_id;
                }
                else
                {
                    $cible = '/gerertypesetablissements/index';
                }
                $this->_redirect($cible);
=> Je récupère bien le paramètre from et quand j'ai ajouter mon nouveau type d'établissement, je retourne vers la vue appelante gereretablissements/ajouter et je passe en paramètre l'identifiant du type d'établissement ajouter afin de positionner le Zend_Form_Element_Select sur cette valeur.
Pour ce faire, dans gereretablissements/ajouter, j'ai ceci :
Code :
1
2
3
4
5
6
        // Recherche du type d'établissement éventuellement ajouté à la liste
        unset($param);
        $param = $this->_request->getParam('te_id');
        $form->etb_id_type_etablissement->setValue($param);
 
        $this->view->form = $form;
Le processus fonctionne bien mais le problème est que maintenant le lien "Ajouter un type d'établissement" pointe sur "/gerertypesetablissements/ajouter/te_id/10/from/gereretablissments/ajouter", c'est à dire qu'il a conservé le paramètre te_id !

Pire, les autres liens de la page ont aussi ce paramètre inutile en fin d'URL, ainsi que les liens des autres pages !

Une idée de la cause et pour éviter ça ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 09h54   #2
Membre expérimenté
 
Avatar de manuscle
 
Homme Emmanuel Belair
Développeur informatique
Inscription : septembre 2004
Messages : 463
Détails du profil
Informations personnelles :
Nom : Homme Emmanuel Belair
Âge : 32
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2004
Messages : 463
Points : 597
Points : 597
Il faut 'reseter' l'aide vue:
Code :
1
2
3
//Voir Zend/View/Helper/Url.php
echo $this->url(array(.../...), null, true);
__________________
Les idiots sont ceux qui ne posent jamais de question!
manuscle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h42.


 
 
 
 
Partenaires

Hébergement Web