Accueil > Forum > > > > index d'un select dans un formulaire
index d'un select dans un formulaire
lundi 4 décembre 2006 à 13:54:40 |
index d'un select dans un formulaire

astridette
|
Bonjour, j'ai un page html avec un tableau dans lequel sont présents plusieurs select. Ce tableau est contruit dynamiquement avec un ajouter ligne et un supprimer ligne. J'ai trois select, select1,select2,select3. Quand je choisis l'option non dans le select1, je mets en disabled select2 et select3. J'appelle une fonction javascript avec this. Mon problème est de savoir quel est l'index du select1 dans mon formulaire pour savoir quel select 2 et 3 je dois griser. En gros mon code est celui ci (en php pour la partie html) <table name="tableau"> <tr> <td> <select name="select1[]" onchange=griser(this)></select> <select name="select2[]"></select> <select name="select3[]"></select> </td> </tr> </table> En javascript griser(this) { document.frmPrincipal.elements[indiceduselect+1].disabled="disabled"; } Comment trouver indiceduselect sachant que mon table peut contenir de 1 à n lignes. Je ne peux pas utiliser l'ID car je suis susceptible de supprimer un ligne ou d'en ajouter. Merci d'avance. Astrid
|
|
lundi 4 décembre 2006 à 16:26:41 |
Re : index d'un select dans un formulaire

lesdis
|
Je ne voit pas trop ce que tu veut faire mais si tu cherche a trouver quel est l'index selectionné dans ta liste, tu as la propriété selectedIndex qui te permettra de recupérer l'index et peut importe le nombre de lignes existantes.
|
|
lundi 4 décembre 2006 à 16:41:35 |
Re : index d'un select dans un formulaire

astridette
|
ce n'est pas l'index de l'item sélectionné dans la liste mais l'index de mon select dans le formulaire.
Par exemple si j'ai ce code : <form name=myform> <select name=select1> </select> <select name=select2> </select> <select name=select3> </select> </form> En javascript on accède aux différentes listes avec : form.elements[0].name => select1 form.elements[1].name => select2 .....
Mon problème est que le nom de mon select est un tableau sous la forme nom[] et donc je ne connais pas l'index de mon select. Je voudrais donc le retrouver.
Est-ce plus clair ?
Merci d'avance.
Astrid
|
|
lundi 4 décembre 2006 à 17:32:56 |
Re : index d'un select dans un formulaire

Marcial
|
slt, Ce que tu demande est très simple et si tu avais chercher un peu tu aurais trouvé facilement... Enfin... Donc si j'ai bien compris, ce que tu veux c'est savoir quelle ligne du select a été choisie par l'utilisateur...
var resultat=document.getElementById('TonSelect1').selectedIndex;
___________________________________________ Le plus grand des défauts de l'homme c'est de toujours pointer un doigt accusateur... Mais jaimais devant un miroir... ___________________________________________
|
|
lundi 4 décembre 2006 à 17:54:34 |
Re : index d'un select dans un formulaire

lesdis
|
si j'ai bien compris ce coup ci tu aimerais savoir qu'elle est l'index de ton select dans la collection d'éléments de ton form. Je te propose ce code qui n'est qu'une facon de faire et pas forcement la meilleure : <form name=myform> <select name=select1 onclick='test(this);'> </select> <select name=select2> </select> <select name=select3> </select> </form> <script language='javascript'> function test(obj){ var x =0; while(obj.parentNode.elements[x]){ if (obj.parentNode.elements[x] == obj) alert('le select activé est l\'element n°' + x + ' du Form'); x++; } } </script> Bonne continuation en espérant avoir pu t'aider 
|
|
lundi 4 décembre 2006 à 18:02:52 |
Re : index d'un select dans un formulaire

PetoleTeam
|
B
onjour...
j'opterais pour une solution du type chaque SELECT de la ligne 1 a un ID du genre ID="L01_x" ou x est la position sur la ligne
ensuite dans la fonction
griser(this) tu récupère l'ID et sont index var szID = this.ID; var Pos = szID.indeOf("_"); var szLigne; //-- Récup Numéro ligne if( Pos > -1){ szLigne =
szID.substring( 0, Pos);
//-- Reste a disabled les autres
document.getElementById( szLigne+"_2).disabled= true;
document.getElementById( szLigne+"_3).disabled= true;
}
ou un truc dans ce style
;0)
|
|
mardi 5 décembre 2006 à 09:03:25 |
Re : index d'un select dans un formulaire

astridette
|
mon soucis c'est que le nom du select n'est pas clairement identifié puisqu'il est sous la forme nom[]. J'ai bien cherché avant de poser la question et je n'ai rien trouvé. Pour l'idée des indice ce n'est pas possible car je suis amenée à reconstruire mon tableau avec mes select régulièrement ce serait vraiment trop galère de gérer des indices.
Je vais essayer la solution proposée par lesdis.
C'est seulement dommage que ce ne soit pas possible de trouver facilement l'index d'un objet dans un formulaire.
Merci à tous.
astrid
|
|
mardi 5 décembre 2006 à 13:47:42 |
Re : index d'un select dans un formulaire
|
mardi 5 décembre 2006 à 14:32:16 |
Re : index d'un select dans un formulaire

astridette
|
Voici une partie de mon code PHP où je construis mon tableau : <table id="tableau_weekend"><thead><tr><th><?print$debut; ?></th><th><?print$fin; ?></th><th> </th></tr></thead><tfoot><tr><tdcolspan="3"><br/><ahref="#"onclick="addLigneSched(this); return false;"/><?print$ajouter?></a></td></tr></tfoot><tbody><trstyle="display:none;"id="clone_weekend"><td><?print$this->_selectHours("PLAGE_WEEKEND[]", "WEEKEND",''); ?></td><?print$this->_selectEnd("WEEKEND", '')?><trid="aucune"style="display:none;"><tdcolspan="3"><b><?print trad("Aucune plage horaire définie");?></b></td></tr><?phpif ($this->currentDatas['WEEKEND'] == NULL){ print("<tr id=\"aucune\"><td colspan=\"3\"><b>");print trad("Aucune plage horaire définie");print("</b></td></tr>");} else{ foreach($this->currentDatas['WEEKEND'] as$i => $values){ print("<tr><td>");print$this->_selectHours("PLAGE_WEEKEND[]", "WEEKEND",$values["PLAGE"]);print("</td>");print$this->_selectEnd("WEEKEND", $values["HEURE_MIN"],$i);} } ?></tbody></table> function _selectHours($days, $hours, $res){ $options = array( "08_00_14_00" => "8h - 14h","12_00_14_00" => "12h - 14h","14_00_20_00" => "14h - 20h",); if($hours == "WEEKEND"){ $options["09_00_19_00"] = "9h - 19h";} $html = "<SELECT NAME=\"".$days."\">\n";foreach($optionsas$value => $title){ $html .= "<OPTION VALUE=\"$value\" ";if($value == $res){ $html .= "SELECTED";} $html .= ">$title</OPTION>\n";} $html .= "</SELECT>";return($html);} function _selectEnd($days, $hours){ $html = "<td><SELECT NAME=\"ARRET_".$days."[]\" onchange=\"changeArret(this);\">\n";$html .= "<OPTION VALUE=\"yes\"";if ($hours != NULL){ $html .= "coucou";$heuremin = explode('_',$hours);$html .= " SELECTED ";$disabled = "";} $html .= ">".trad("Arrêter à")."</OPTION>\n";$html .= "<OPTION VALUE=\"no\"";if ($hours == NULL){ $html .= " SELECTED ";$heuremin[0] = "14";$heuremin[1] = "00";} $html .= ">".trad("Ne pas arrêter")."</OPTION></SELECT>\n";$html .= "<SELECT NAME=\"HEURE_".$days."[]\">\n";for ($j=0; $j<=23;$j++){ if ($j < 10){ $num="0".$j;} else{ $num=$j;} $select = "";if ($j == $heuremin[0]){ $select = "SELECTED";} $html .= "<OPTION VALUE=\"".$num."\" ".$select.">".$num."</OPTION>\n";} $html .= "</SELECT>\n";$html .= " h \n";$html .= "<SELECT NAME=\"MIN_".$days."[]\">\n";for ($j=0; $j<=59;$j++){ if ($j < 10){ $num="0".$j;} else{ $num=$j;} $select = "";if ($j == $heuremin[1]){ $select = "SELECTED";} $html .= "<OPTION VALUE=\"".$num."\" ".$select.">".$num."</OPTION>\n";} $html .= "</SELECT>\n";$html .= "</td>\n";$html .= "<td><a href=\"#\" onclick=\"delLigneSched(this); return false;\">".trad("Supprimer")."</a>\n";$html .= "</td></tr>\n";return($html);}
Quand l'utilisateur clique sur ajouter une ligne on clone la première ligne du tableau. Ce que je veux faire c'est que quand l'utilisateur choisit ne pas arrêter les select contenant l'heure et les minute soit disabled. Voici la fonction javascript appelée sur le onchange du select arrêt.
function changeArret(link) { var td = link.parentNode; var table = getParent(td, 'TABLE'); var index = getParent(td, 'TR').rowIndex; var heure_select = (index-1)*4 - 2; var min_select = heure_select + 1; if (table.id == "tableau_weekend") { var max = document.getElementById("tableau_weekday").rows.length; heure_select = heure_select + ((max-3)*4); min_select = min_select + ((max-3)*4); } if (link.value == "no") { document.frmPrincipal.elements[""+heure_select+""].disabled="disabled"; document.frmPrincipal.elements[""+min_select+""].disabled="disabled"; } else { document.frmPrincipal.elements[""+heure_select+""].disabled=""; document.frmPrincipal.elements[""+min_select+""].disabled=""; } } Ca marche mais je ne trouve pas ça trés propre.
Merci
Astrid
|
|
mardi 5 décembre 2006 à 17:57:58 |
Re : index d'un select dans un formulaire
|
Cette discussion est classée dans : ligne, formulaire, select, index, select1
Répondre à ce message
Sujets en rapport avec ce message
pb fonction js pour submit de formulaire dynamique [ par BDdev ]
HELP !!!!je créé dynamiquement sur une page un tableau contenant les résultats d'une requete sql et dans chaque ligne un formulaire (caché) et je voud
formulaire dynamique [ par klem14 ]
SAlut à tous.J'aimerais savoir si c'est possible de coder un formulaire dynamique, c'est à dire donner la possibilité d'ajouter une nouvelle ligne de
probl de formulaire [ par gregsae ]
salut j'ai un probl dans mon formulaire.j'ai un champs select qui propose soit :-particulier soit professionnelle select marche il m'affiche bien le
Select qui submit le formulaire quand on sélectionne une des options [ par Diabolus ]
Salut tout le monde,Je voudrais faire un sélect dans un formulaire qui permettrait de valider le formulaire sans devoir utiliser un bouton. Dès que l'
retour chariot dans un menu select option [ par sbertrand ]
bonjour, peut-on, et si oui comment faire passer a la ligne un texte de balise option dans un menu select ?j'ai un texte de 2 km qui agrandie mon menu
Formulaire : Ajouter une ligne sans reload [ par coraziari ]
Bonjour,Je réalise un formulaire de saisie de CV mais je galère un peu pour les expériences. En effet, pour ne pas "polluer" trop la page, j'ai mis un
Plusieurs selects mais n'ayant jamais la même valeur? [ par benhen ]
Bonjour, voila, je ne sait pas dutout comment faire, pour avoir plusieurs select sur une page, et qu'ils n'ai pas la même valeur, par exemple:Select1:
Positionner une ligne de formulaire [ par benoi6 ]
Bonjour,J'ai un code qui me permet d'ajouter des lignes à un formulaire en cliquant sur un bouton. Cependant ma ligne ajouté se place tout a la fin du
index d une ligne dans une table [ par echecetmat ]
Bonjour,J'aimerai récuperer l'index d'un pour y appliquer un style en fonction de ce numero quand on click sur une checkbox contenu dans cette ligne.
valeurs de formulaire 'select' dynamique [ par DarkTiteuf ]
Voila bonsoir j'ai le cas suivant : et je voudrais que lorsque je clique sur une valeur a gauche cela change le tableau de droite. La propriété onch
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|