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

Bibliothèques & Frameworks Discussion :

Récupérer les cases cochées dans un QuickForm [MooTools]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut Récupérer les cases cochées dans un QuickForm
    Bonjour,
    Je continue mes recherches dans les sélecteurs mootools; je souhaiterais récupérer les valeurs des cases cochées d'un même groupe définit ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $form_matrice_plan = new HTML_QuickForm('form_matrice_plan');
    foreach ($liste_perim as $id_perim => $perim) {
    	$qf_perim[] = $form_matrice_plan->createElement('checkbox', $perim['intitule_court'], null, $perim['intitule_long']);
    }
    $form_matrice_plan->addGroup($qf_perim, 'perimetres', gettext('Périmètres'), '');
    appelé sur la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script  type="text/javascript">
    window.addEvent('domready',function(){
    $('btn_rechercher_1').addEvent('click', function(){
    var perim = $('form_matrice_plan').getElements('input[name=perimetres]:checked').get('value');
    		alert(perim);
    });
    	});	
    });
    </script>
    Le code html généré crée des input de type checkbox qui ont pour valeur 1. Mais perim semble nulle => aucun message n'est affiché.
    J'ai jeté un oeil à la faq mais je vois pas ...
    =========================================================

    Bon, le problème doit venir de la déclaration des checkbox en groupe; si je déclare:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($liste as $id => $perim) {
    	$form_matrice_plan->addElement('checkbox', 'perimetres', '', $perim['long'], array('id'=>$perim['court']));
    }
    et sur la page, je récupère l'id des checkbox sélectionnées => cela fonctionne.

    L'utilisation de addGroup génère un tableau perimetres[]:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="perimetres[BP1]" type="checkbox" value="1" id="qf_209bec" /><label for="qf_209bec">
    ; et c'est le drame ( modéré tout de même par le bon fonctionnement de la seconde solution), je ne sais comment récupérer les cases cochées ?!
    Si vous avez une idée : ce serait instructif .

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Pourrions-nous avoir le HTML généré ?

  3. #3
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    la partie html concernée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
    		<td align="right" valign="top"><b>Périmètres</b></td>
    		<td valign="top" align="left">	<input name="perimetres[BP1]" type="checkbox" value="1" id="qf_83898c" /><label for="qf_83898c">utilisé pour 1er volume</label><input name="perimetres[BP2]" type="checkbox" value="1" id="qf_6871e6" /><label for="qf_6871e6">utilisé pour 2ème volume</label><input name="perimetres[BP]" type="checkbox" value="1" id="qf_286f7a" /><label for="qf_286f7a">utilisé pour 1er ou 2ème volume</label><input name="perimetres[hors BP]" type="checkbox" value="1" id="qf_0342f8" /><label for="qf_0342f8">non utilisés</label><input name="perimetres[non typé]" type="checkbox" value="1" id="qf_7e486c" /><label for="qf_7e486c">indéfini</label><input name="perimetres[non typable]" type="checkbox" value="1" id="qf_129049" /><label for="qf_129049">indécidable</label></td>
    	</tr>
    Mais je le répète, la seconde solution évite le problème. Si je n'ai pas clos la discussion, c'est que je voudrais comprendre comment faire avec un groupe d'éléments déclaré avec Quickform

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Oui, c'est le HTML généré par Quickform que je voulais comparer à l'autre. C'est celui-ci, peut-être ?

  5. #5
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    oui c'est le html généré par QuickForm (solution 1: définir un formulaire avec un groupe grâce à Quickform).
    Dans le second cas (qui fonctionne):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tr>
    		<td align=\"right\" valign=\"top\"><b>Périmètres</b></td>
    		<td valign=\"top\" align=\"left\">	<input id="BP1" name="perimetres" type="checkbox" value="1" /><label for="BP1">utilisé pour BP 1er volume</label></td>
    	</tr>
    	<tr>
    		<td align=\"right\" valign=\"top\"><b></b></td>
    		<td valign=\"top\" align=\"left\">	<input id="BP2" name="perimetres" type="checkbox" value="1" /><label for="BP2">utilisé pour BP 2ème volume</label></td>
    	</tr>

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    En fait, c'est du côté PhP qu'il faut vous renseigner car le HTML généré n'est pas ce que vous pensiez. Le name et l'id ont été concaténés d'une drôle de manière. Quickform a ajouter ses propres id. Il est donc normal que votre code Mootools soit perdu.

  7. #7
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Merci
    Comme cadeau, voici ma souris

  8. #8
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bien vu.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/05/2008, 12h57
  2. Réponses: 4
    Dernier message: 20/08/2007, 01h16
  3. Réponses: 2
    Dernier message: 27/07/2007, 18h37
  4. Réponses: 7
    Dernier message: 21/05/2007, 09h56
  5. Réponses: 8
    Dernier message: 30/11/2006, 18h32

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