Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1357 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  un objet de formulaire en boucle [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

un objet de formulaire en boucle [résolu]

n°2028049
Kai-Ho
Posté le 10-10-2010 à 00:08:24  profilanswer
 

Bonjour,
 
Bon, le titre n'est vraiment pas clair parce que j'avoue que ma question est assez complexe.
 
En fait, j'ai un formulaire composé en deux parties.
 
Tout d'abord, une partie avec une petite dizaine de checkbox.
En sélectionnant celles-ci (deux possibles (jusque là, je gère ;) )), je dois agir sur la deuxième partie.  
 
Dans cette deuxième partie, j'ai beaucoup (vraiment beaucoup  :whistle: ) de checkbox.
 
J'ai deux problèmes qui se posent à moi.  
Tout d'abord, les noms des checkbox ne se suivent pas numériquement (je peux avoir check_1, check_2 et check_4 (donc pas de check_3 :D )).
Ensuite, comme il y en a vraiment beaucoup (si si), j'ai voulu tenter d'incrémenter les noms dans une boucle, du genre
 

Code :
  1. function valide_check(form)
  2.         {
  3.          for (var i=1;i<=128;i++)
  4.             {
  5.             if (typeof(form.check_+i) != "undefined" )
  6.                 {
  7.                 form.check_+i.checked=true;               
  8.                 }
  9.             }
  10.          }


La condition réponds toujours vraie alors que ce n'est pas le cas.
 
Je suppose donc qu'il y a une erreur, ou alors je suis un gros rêveur, et ce n'est pas possible.
 
Merci d'avance de votre aide !


Message édité par Kai-Ho le 12-10-2010 à 13:37:34

---------------
http://www.lancedragon.fr
mood
Publicité
Posté le 10-10-2010 à 00:08:24  profilanswer
 

n°2028181
Kai-Ho
Posté le 10-10-2010 à 22:58:23  profilanswer
 

Pour info, j'ai tenté de nombreuses choses, du genre

Code :
  1. function valide_check(form)
  2.         {
  3.          for (var i=1;i<=128;i++)
  4.             {
  5.             if (typeof(document.getElementById("check_"+i)) != "undefined" )
  6.                 {
  7.                 form.document.getElementById("check_"+i).checked=true;               
  8.                 }
  9.             }
  10.          }


Sans plus de succès...
 
Personne n'a une idée de la faisabilité de la chose ?


---------------
http://www.lancedragon.fr
n°2028196
Kai-Ho
Posté le 11-10-2010 à 00:21:51  profilanswer
 

J'ai donc des checkbox dans ma première partie qui renvoie une variable (ei_1 ou ei_2)
Mais ma page php a créé une deuxième partie dans laquelle il y a beaucoup de checkbox en face d'un texte. Je désactive la checkbox et grise le texte si la valeur de ei est égale à un champ caché correspondant à mon deuxième checkbox...
 
Je sais, c'est un peu tordu, mais le script suivant fonctionne sans problème, mais avec plus de 120 checkbox, j'aurais voulu éviter de tous les écrire.
 

Code :
  1. if (typeof(form.name_1_3) != "undefined" )
  2.   {
  3.   if ((form.ecole_1_3.value==ei_1) || (form.ecole_1_3.value==ei_2))
  4.    {
  5.    form.name_1_3.checked=false;
  6.    form.name_1_3.disabled=true;
  7.    document.getElementById("td_ecole_1_3" ).style.color='gray';
  8.    }
  9.   else
  10.    {
  11.    form.name_1_3.disabled=false;
  12.    document.getElementById("td_ecole_1_3" ).style.color='black';
  13.    }
  14.   }


---------------
http://www.lancedragon.fr
n°2028222
cetplus
Wazard dans l'ombre
Posté le 11-10-2010 à 08:08:58  profilanswer
 

Salut
En gros, tu veux faire comme ici : (mon site)
view-source:http://membres.multimania.fr/yarflam/BaballEd.html

 
Citation :

j'aurais voulu éviter de tous les écrire.


J'ai utilisé pour ça du ms-dos, qui m'a rapidement généré 400*3 donc 1200 objets dans ma page web. (1414 lignes en tout)
C'est peut-être pas le meilleur moyen, mais ça fait gagner du temps aux visiteurs et à toi ! :) Voilà, sinon ton script est un peux confus. Je croyais que les numéros ne se suivaient pas, et où sont les conditions pour les éviter ?


Message édité par cetplus le 11-10-2010 à 08:13:12
n°2028267
Kai-Ho
Posté le 11-10-2010 à 10:14:03  profilanswer
 

Je me doutais que je n'avais pas été clair :pfff:  
 
En fait, j'ai créé mon formulaire en php. Donc, de ce côté, pas de souci, mes 100 checkbox sont générés.
 
Voilà tel que cela se présente :
Une première partie avec 8 checkbox :
 

Code :
  1. <td width='10'>
  2.                                     <input type='checkbox' name='ei_1' id='ei_1'  onClick='compteur_ei(this.form,this,$nbre_ei)'>
  3.                                 </td>
  4.                                 <td width='150' id='td_ei_1' style='$style_ei_1'>
  5.                                      <font face='$police' size='2'>Abjuration</font>
  6.                                 <td>
  7.                                 <td width='10'>
  8.                                     <input type='checkbox' name='ei_2' id='ei_2'  onClick='compteur_ei(this.form,this,$nbre_ei)'>
  9.                                 </td>
  10.                                 <td width='150' id='td_ei_2' style='$style_ei_2'>
  11.                                      <font face='$police' size='2'>Divination</font>
  12.                                 <td>


En voilà 2 mais les 6 autres se présentent de la même façon.
 
Ensuite, la deuxième partie, générant jusqu'à une centaine de checkbox.
 
 

Code :
  1. <td width='10'>
  2.                                 <input type='checkbox' name='$id' id='$id'>
  3.                             </td>
  4.                             <td width='230' id='td_$ecole'>
  5.                                 <font face='$police' size='2'>$nom_sort</font>
  6.                                 <input type='hidden' name='$ecole' id='$ecole' value='$ecole_sort'>
  7.                             </td>


 
Pour mieux comprendre, chaque zone se compose de la même manière
     

  • Une checkbox (dont le nom est composé comme suit : name_1_1, name_1_2, name_1_3, etc...)

   

  • Un nom qui peut être grisé en modifiant l'id du td composé comme suit : td_ecole_1_1, td_ecole_1_2, td_ecole_1_1, etc...

   

  • Un input caché permettant d'identifier la checkbox par rapport à ma première zone. le nom et l'id sont composés comme suit : ecole_1_1, ecole_1_2, ecole_1_3, etc... Pour la valeur, il y en a 8 possibles...


Ensuite, je veux que lorsque je clique dans une checkbox de la première partie, les éléments de la seconde partie qui ont une valeur égale à la première se désactivent.
 
Voici le script qui fonctionne

Code :
  1. if (typeof(form.name_1_1) != "undefined" )
  2.              {
  3.               if ((form.ecole_1_1.value==ei_1) || (form.ecole_1_1.value==ei_2))
  4.                 {
  5.                 form.name_1_1.checked=false;
  6.                 form.name_1_1.disabled=true;
  7.                 document.getElementById("td_ecole_1_1" ).style.color='gray';
  8.                 }
  9.               else
  10.                 {
  11.                 form.name_1_1.disabled=false;
  12.                 document.getElementById("td_ecole_1_1" ).style.color='black';           
  13.                 }
  14.              }
  15.            if (typeof(form.name_1_2) != "undefined" )
  16.             {
  17.             if ((form.ecole_1_2.value==ei_1) || (form.ecole_1_2.value==ei_2))
  18.                 {
  19.                 form.name_1_2.checked=false;
  20.                 form.name_1_2.disabled=true;
  21.                 document.getElementById("td_ecole_1_2" ).style.color='gray';
  22.                 }
  23.             else
  24.                 {
  25.                 form.name_1_2.disabled=false;
  26.                 document.getElementById("td_ecole_1_2" ).style.color='black';           
  27.                 }
  28.             }


 
Mais comme j'ai quand même plus d'une centaine de checkbox générée, j'aurais voulu trouver un moyen plus rapide, en utilisant une boucle, comme je l'ai expliqué plus haut, du genre :
 

Code :
  1. for (var i=1;i<=128;i++)
  2.             {
  3.            if (typeof(form.name_1_+i) != "undefined" )
  4.             {
  5.             if ((form.ecole_1_+i.value==ei_1) || (form.ecole_1_+i.value==ei_2))
  6.                 {
  7.                 form.name_1_+i.checked=false;
  8.                 form.name_1_+i.disabled=true;
  9.                 document.getElementById("td_ecole_1_"+i).style.color='gray';
  10.                 }
  11.             else
  12.                 {
  13.                 form.name_1_+i.disabled=false;
  14.                 document.getElementById("td_ecole_1_"+i).style.color='black';           
  15.                 }
  16.             }


J'ai vraiment essayé beaucoup de choses différentes, mais sans succès :cry:


---------------
http://www.lancedragon.fr
n°2028586
Kai-Ho
Posté le 12-10-2010 à 13:36:49  profilanswer
 

Pour ceux que ça intéresse, j'ai trouvé la solution
 

Code :
  1. for (var i=1;i<=128;i++)
  2.             {
  3.            if (typeof(form.elements['name_1_' + i]) != "undefined" )
  4.             {
  5.             if ((form.elements['ecole_1_'+i].value==ei_1) || (form.elements['ecole_1_'+i].value==ei_2))
  6.                 {
  7.                 form.elements['name_1_'+i].checked=false;
  8.                 form.elements['name_1_'+i].disabled=true;
  9.                 document.getElementById("td_ecole_1_"+i).style.color='gray';
  10.                 }
  11.             else
  12.                 {
  13.                 form.elements['name_1_'+i].disabled=false;
  14.                 document.getElementById("td_ecole_1_"+i).style.color='black';           
  15.                 }
  16.             }


 
Ca fonctionne nickel !


---------------
http://www.lancedragon.fr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  un objet de formulaire en boucle [résolu]

 

Sujets relatifs
formulaire choix a traiter duuuurFormulaire et bouton précédent
Récupérer les propriétés d'un objet dans un autre objetcode html dans formulaire?
problème de formulaireTester l'injection sur un formulaire ?
connaitre les propriétés d'un objetFormulaire AS3
[Perl] - Programmation objet et debuggerGriser une page web pour faire ressortir un formulaire
Plus de sujets relatifs à : un objet de formulaire en boucle [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR