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 :

Probleme avec getRequest()->getParam


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut Probleme avec getRequest()->getParam
    Bonjour à tous,
    j'ai un formulaire avec plusieurs boutons submit.
    Chacun de ces boutons ainsi défini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Formulaire de mouvements en masse
     $mouvementmasse = new Zend_Form_Element_Image('mouvementmasse');    // bouton pour le mouvement des elements cochés
          $mouvementmasse   ->setlabel('mouvementmasse')
                 ->setImage('/projet/public/images/move.png')
                 ->setAttrib( 'id', 'mouvementmasse' )
                 ->setAttrib('type', 'submit')   ...
    Dans mon controller je sais quel bouton a été selectionné et en fonction je redirige vers l'action voulue ( avec au passage les id de mes elements cochés)
    j'ai donc dans mon controller :
    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
    if ( $this->getRequest()->isPost() ) {  // si on a une donnée en post via le formulaire
    			$id_dossier = $this->getRequest()->getParam( 'id' );
    			 //echo '<br />Id du dossier :'.$id_dossier . "<br />";
     
    			 if ( $this->getRequest()->getPost( 'check' ) ) {  // si on recupère des id cochés
    				$id_scelles = $this->getRequest()->getPost( 'check' );
    				$this->view->id=$id;
    				if ( $this->getRequest()->getParam( 'submit_bordereau') ) {  
    					$this->genererBordereau( $id_dossier, $id, NULL ); 
    				} elseif ( $this->getRequest()->getParam( 'submit_fiches' ) ) {
    					$this->genererfichescelle( $id_dossier, $id, NULL ); 
    				} elseif ( $this->getRequest()->getParam( 'mouvementmasse' ) ) {
     
    					$this->_redirector=$this->_helper->getHelper( 'Redirector' );
    					$this->_redirector->gotoSimple('mouvementmasse' , 'mouvement', null, array('id'=>$id ));  // on passe nos id en Get
    				}
    			 }
    		}
    En fait, ce code fonctionne tres bien sur FF 3.6.X et chrome toutes versions mais PAS sur FF10+ ( et pas sur IE mais ca je m'en contrefiche)
    Le probleme se situe ici : if ( $this->getRequest()->getParam( 'submit_bordereau') ) il ne récupère plus le nom du bouton submit clické par l'utilisateur.
    Que puis je faire pour que mon code fonctionne sur FF10 et + ?

  2. #2
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut
    Pour info
    avec firebug, je vois par exemple mes 2 scellés cochés :
    check[] 487
    check[] 486
    submit_bordereau.x 11
    submit_bordereau.y 27
    alors qu'avec Chrome l'outil de développement affiche
    check[]:487
    check[]:486
    submit_bordereau.x:13
    submit_bordereau.y:14
    submit_bordereau:submit_bordereau ce qui semble necessaire pour if ( $this->getRequest()->getParam( 'submit_bordereau') )

  3. #3
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut
    Bon j'ai bien trouvé le moyen de tricher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( $this->getRequest()->getParam( 'submit_bordereau_x') || $this->getRequest()->getParam( 'submit_bordereau_y') )
    mais je ne comprends toujours pas pourquoi cela marchait avant (3.6.x) et pas avec la 10, 11, 12 !

  4. #4
    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
    Il y a une autre solution pour ne pas testé sur le nom des bouton.

    tu ajoutera un attribut onclick dans tes images où tu changera le chemin de redériction de ton formulaire.

    si tu click sur img1 action="chemin1"
    si tu click sur img2 action="chemin2"
    ...

  5. #5
    Membre confirmé
    Homme Profil pro
    A la découverte de la POO
    Inscrit en
    Mai 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : A la découverte de la POO

    Informations forums :
    Inscription : Mai 2009
    Messages : 93
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    Il y a une autre solution pour ne pas testé sur le nom des bouton.

    tu ajoutera un attribut onclick dans tes images où tu changera le chemin de redériction de ton formulaire.

    si tu click sur img1 action="chemin1"
    si tu click sur img2 action="chemin2"
    ...
    Interessant aussi.
    Comment fais tu pour ajouter ce code dans un formulaire Zend ?

  6. #6
    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
    Avec du jQuery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $mouvementmasse = new Zend_Form_Element_Image('mouvementmasse');    // bouton pour le mouvement des elements cochés
          $mouvementmasse   ->setlabel('mouvementmasse')
                 ->setImage('/projet/public/images/move.png')
                 ->setAttrib( 'id', 'mouvementmasse' )
                 ->setAttrib( 'onclick', '$("#idForm").attr("action", "/url")' )
                 ->setAttrib('type', 'submit')   ...

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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