Problème bouton-radio // tableau associatif

Résolu
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 - 31 mai 2007 à 21:23
mahlaoui Messages postés 29 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 13 octobre 2008 - 12 mars 2008 à 17:20
Bonjour à tous,

j'ai un petit problème de récupération d'une valeur d'un bouton radio.
Voici mon code php qui me créé dynamiquement mes boutons:

 
while($l=mysql_fetch_row($tab_prestations))
   {
       for($i=1;$i<=$nombre_de_versements;$i++)
       {
           echo "";
       }
       echo "
";
}


J'obtient donc plusieurs lignes de boutons radios (un groupe de bouton par ligne).
Je voudrais donc récupérer la valeur du bouton coché dans la ligne, mais là, j'ai un problème.

alert (eval("form_vers_th.th["+vers+"].value")); m'affiche quelque chose du genre "form_vers_th.th.72" lorsque vers vaut 72.

En faite, je ne connais pas vraiment javascript et je ne sais pas pourquoi le crochet disparait.

Si quelqu'un peut m'aider, je lui en serait très reconnaissant.
Si mon explication est confuse, n'hésitez pas à me demander plsu d'explications.

Merci!!

Lowkey

10 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 juin 2007 à 05:23
effectivement si tu traites ça comme ça coté php,



     </td><td>
     </td><td>
       ...



     </td><td>
     </td><td>

             ...

    coté javascript : document.name_du_formulaire["vers_ht[40]"][indice].checked
                                document.name_du_formulaire["vers_ht[40]"].length

      on peut             document.name_du_formulaire["vers_ht["+valeur+"]"][indice].checked

                                                              

<hr />
Cordialement            Bul     [mon Site]     [M'écrire]
<hr />
3
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
31 mai 2007 à 21:26
Correction :

alert (eval("form_vers_th.versement["+vers+"].value")); m'affiche quelque chose du genre "form_vers_th.versement.72" lorsque vers vaut 72.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
1 juin 2007 à 10:45
Bonjour,

   qu'est-ce qu'on fait nous pour voir $tab_prestations ou $nombre_de_versements ????
         
    donnes nous un extrait de la page html générée !
   
    si c'est l'histoire des noms avec crochets...
    utiliser document.name_du_formulaire["names_des_champs[]"]...
       veiller à bien respecter les points, les []
   
    très souvent c'est inutile d'ailleurs. mettre le même name suffit
    et si c'est pour récupérer un tableau en php, c'est name="toto[]"
          qu'il faut mettre.


   

<hr />
Cordialement            Bul     [mon Site]     [M'écrire]
<hr />
0
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
2 juin 2007 à 15:54
Salut !!

Voici le code html généré :

<tr><td>
      </td><td>
      </td><td>
      </td></tr>
<tr><td>
      </td><td>
      </td><td>
      </td></tr>
<tr><td>
      </td><td>
      </td><td>
      </td></tr>
<tr><td>
      </td><td>
      </td><td>
      </td></tr>

Sachant que le numero après vers_th est créé dynamiquement.
Dans ce cas, $nombre_de_versements vaut 4 et $tab_prestations est le résultat d'une requete qui me retourne ('40', '41', '42', '43').

Je vais essayer ta solution avec les crochets et je te dirais si ça marche.

Merci pour ta réponse rapide !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
2 juin 2007 à 15:55
Oups, désolé, j'ai 'encore' dit une connerie...

Dans ce cas, $nombre_de_versements vaut 3 et $tab_prestations est le résultat d'une requete qui me retourne ('40', '41', '42', '43').
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 juin 2007 à 16:24
Bonjour,

perso je générerais sans les crochets ( syntaxe plus simple,
       mais peut-être n'ais-je pas compris ton besoin ! )

<tr><td>
      </td><td>
      </td><td>
      </td></tr>
<tr><td>
      </td><td>
      </td><td>
      </td></tr>
...

le php récupérant ( mettons en post )
    $_POST['vers_th40'],  $_POST['vers_th41'] ...

le javascript quand à lui gérant ,    par exemple :
    var t40= document.name_du_formulaire.vers_th40;
    traitement de t40[0]  à  t40[t40.length-1]
    t40[ indice ].checked est true si coché, false sinon.

    on peut, coté avascript user
       de document.name_du_formulaire["vers_th"+nombre]...

       par exemple :

       var nombre =40; // si les 1ers radios commencent à 40 !
       while (document.name_du_formulaire["vers_th"+nombre])
       {   traiter document.name_du_formulaire["vers_th"+nombre][indice].checked
                   document.name_du_formulaire["vers_th"+nombre].length
                   ...
           nombre++;
        }

              




<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
2 juin 2007 à 20:29
Salut,

en effet, les crochets me sont forts utiles car les nombres (ici 40 à 43) sont issus de ma base de donnée et je ne les connais pas.
Donc, pour parcourir toutes mes cases à cocher, j'utilise un foreach sur ce tableau :

foreach ($_POST['vers_th'] as $id => $val)

c'est pour cela que je souhaitais garder les crochets.

Mais ne connaissant pas vraiment Js, je vais suivre ton conseil. Le code php sera vite adapté.

Merci bultez.
0
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
3 juin 2007 à 12:26
Parfait !!

C'est exactement ce qu'il me fallait.

Merci encore Bultez!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 juin 2007 à 12:42
il vous en prie.
nickel si ça baigne, merci de l'avoir dit.
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
mahlaoui Messages postés 29 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 13 octobre 2008
12 mars 2008 à 17:20
Merci
0
Rejoignez-nous