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 :

Problème avec les boutons submit [ZF 1.8]


Sujet :

Zend Framework PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Points : 169
    Points
    169
    Par défaut Problème avec les boutons submit
    Bonjour,

    Je m'essaie actuellement à la programmation avec Zf 1.8.2, et je suis très étonné du traitement des boutons submit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	    $completer = new Zend_Form_Element_Submit('submit');
    	    $completer->setValue("completer") ;
    	    $completer->setLabel("Completer") ;
     
    	    $calculer = new Zend_Form_Element_Submit('submit');
    	    $calculer->setValue("calculer") ;
    	    $calculer->setLabel("Calculer") ;
    Ceci n'affiche que le deuxième bouton dans la page web, alors que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	    $completer = new Zend_Form_Element_Submit('completer');
    	    $completer->setValue("completer") ;
    	    $completer->setLabel("Completer") ;
     
    	    $calculer = new Zend_Form_Element_Submit('calculer');
    	    $calculer->setValue("calculer") ;
    	    $calculer->setLabel("Calculer") ;
    affiche correctement les deux boutons.

    J'ai donc la solution pour contourner le problème mais je voudrai savoir si je n'ai pas raté quelque chose ?

    En effet ce serait beaucoup plus simple de tester la valeur de "submit" au lieu de vérifier chaque élément.

    (désolé, je me suis trompé de forum, cela aurait dû aller dans Zend_Form :/)

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Bah oui t'as raté un truc lol, dans ton premier exemple, tu donne deux fois le même nom à un composant, la 2e déclaration écrase donc la première

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Points : 169
    Points
    169
    Par défaut
    Et donc comment faut-il faire pour obtenir le code suivant dans la page ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type="submit" name="submit" value="completer" />
    <input type="submit" name="submit" value="calculer" />

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo $this->form->submit;
    echo $this->form->submit;
    Mais c'est quoi l'intérêt ??

  5. #5
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    tes deux éléments ont le même nom et le même ID (paramètre du constructeur : submit). Il suffit de préciser leur nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $completer = new Zend_Form_Element_Submit('completer');
    $completer->setLabel("Completer");
    $completer->SetName("completer");
     
    $calculer = new Zend_Form_Element_Submit('calculer');
    $calculer->setLabel("Calculer");
    $calculer->setName("calculer");

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Points : 169
    Points
    169
    Par défaut
    J'ai posé la question chez Zend et ils m'ont proposé d'utiliser une SubForm, après quoi si elle s'appelle submit je récupère ma valeur avec current($formData['submit']) par exemple... Ce n'est pas très heureux mais c'est le plus simple qu'on puisse faire apparemment.

    Merci pour l'aide.

  7. #7
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    En fait, après réflexion, il doit y avoir une autre solution : spécifier un nom différent lors de l'ajout de l'élément à ton formulaire. Mais dans ce cas, pour éviter d'avoir plusieurs fois le même identifiant dans ton code HTML, il faut préciser l'Id de tes éléments, et utiliser tes propres décorateurs (les décorateurs par défaut se basent sur le nom des éléments pour construire leur identifiant).

    Ex (non testé, et sans la modif des décorateurs, mais ça devrait déjà fonctionner tel quel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $completer = new Zend_Form_Element_Submit('submit')
        ->setValue("completer")
        ->setLabel("Completer")
        ->Id = 'completer'; // précision de l'Id pour éviter les doublons
     
    $calculer = new Zend_Form_Element_Submit('submit')
        ->setValue("calculer")
        ->setLabel("Calculer")
        ->Id = 'calculer'; // précision de l'Id pour éviter les doublons
     
    // Précision d'un autre Nom lors de l'ajout au formulaire
    //  pour éviter l'écrasement du premier submit par le second
    $form->addElement($completer, 'completer')
        ->addElement($completer, 'calculer');

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 133
    Points : 169
    Points
    169
    Par défaut
    Impeccable, ça marche merci

    (à quelques problèmes de syntaxe près)

    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
     
    	$completer = new Zend_Form_Element_Submit('submit') ;
        	$completer->setValue("completer")
        	->setLabel("Completer")
        	->Id = 'completer'; // précision de l'Id pour éviter les doublons
     
    	$calculer = new Zend_Form_Element_Submit('submit') ;
        	$calculer->setValue("calculer")
        	->setLabel("Calculer")
        	->Id = 'calculer'; // précision de l'Id pour éviter les doublons
     
    		// Précision d'un autre Nom lors de l'ajout au formulaire
    		//  pour éviter l'écrasement du premier submit par le second
    		$this->addElement($completer, 'completer')
        	->addElement($calculer, 'calculer');

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

Discussions similaires

  1. [Traitement d'image] problème avec les boutons animés
    Par robmoto dans le forum Webdesign & Ergonomie
    Réponses: 9
    Dernier message: 17/08/2007, 13h36
  2. Problème avec les Boutons Image
    Par abdoing dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2007, 10h35
  3. Problème avec 2 boutons submit
    Par STB_Fk dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 16/11/2006, 10h23
  4. Problème avec les boutons d'options
    Par Le Rebel dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 12h12
  5. Problème avec les boutons de perl Tk
    Par jkevin2 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 02/09/2005, 17h18

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