Poster valeurs liste dynamique

Signaler
Messages postés
7
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
16 juillet 2008
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous, j'ai créer un formulaire avec listes dynamiques. A partir la première, j'obtiens une seconde liste avec 3 options pour chacune des sélections.
Les valeurs de la première liste sont bien envoyées par la méthode post. Par contre, les valeurs de la seconde liste ne sont pas tout envoyées. Seule la dernière div est envoyée.
Voici mon code

Choix du paramètre technique

     <select name="PT" id="PT">
       <option value="">- - -</option>      
       <option value="!PT 16" name="r"></option>
       <option value="!PT 29" name="r"></option>
       <option value="!PT 30" name="r"></option>      
     </select>

Valeur PT 16

     <select name="PT_value" id="PT_value">
       <option value="">- - -</option>
       <option value="1100" name="r0">1100</option>
       <option value="2100" name="r0">2100</option>
     </select>

Valeur PT 29

     <select name="PT_value" id="PT_value">
       <option value="">- - -</option>
       <option value="1000" name="r1">1000</option>
       <option value="2000" name="r1">2000</option>
     </select>

Valeur PT 30

     <select name="PT_value" id="PT_value">
       <option value="">- - -</option>
       <option value="1" name="r2">1</option>
       <option value="6" name="r2">6</option>
     </select>

<script type="text/javascript">

var lequel;
var ra=document.getElementsByName("r");

for(i=0;i!=ra.length;i++){
ra[i].ind=i;
ra[i].onclick=function(){
if(lequel){
lequel.style.display="none";
}

lequel=document.getElementById("d"+this.ind);
lequel.style.display="block";

}
}

</script>

merci de votre aide

9 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,
est renvoyé au php, les value des éléments qui ont un name
tu met le même name pour tes éléments... "tout le monde" s'y perd.
met des name différents dans tes select,
ou alors met name="PT_value[]" et le php récupérera un Array
et coté javascript utilise document.name_formulaire["PT_value[]"][index]
ou l'id, (qui lui ausi) doit être unique
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
16 juillet 2008

Le problème est que seules les valeurs contenues dans le div=d2 sont renvoyées lorsque l'option de la liste 1 est sélectionnée mais pas celles des div=d0 et div=d1 si les options sont sélectionnées. Si je change l'ordre des div dans le script seul le dernier est pris en compte...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>Le problème est que seules les valeurs contenues dans le div=d2 sont renvoyées
je ne t'ai expliqué pourquoi ?
c'est du au même name dans les select !
met des names différents pour chaque select
( en passant un ID doit aussi être unique et tu mets le même )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
16 juillet 2008

ok désolé j'avais pas compris
mais si tu mets des name différents dans les select
comment fais-tu pour récupérer les valeurs en post avec des name différents?
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bonjour,

comme tu le fais pour un autre name !

Nickadele
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
nickadele++
ou alors je t'ai expliqué la posibilité de mettre name="PT_value[]"
tu devrais lire ce qu'on te répond je pense.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
7
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
16 juillet 2008

oui bien sur que je lis vos réponses! sinon je ne poserais pas de questions!
mais il faut aussi savoir interpréter les réponses et les utiliser à bon escient!
j'ai finis par résoudre le problème en déclarant tous les name différents dans mon code php
merci à tous!
par contre mon code javasrcipt ne fonctionne que sous firefox et pas sous ie
bof....

<script type="text/javascript">

var lequel;
var ra=document.getElementsByName("r");

for(i=0;i!=ra.length;i++){
ra[i].ind=i;
ra[i].onclick=function();{
if(lequel){
lequel.style.display="none";
}

lequel=document.getElementById("d"+this.ind);
lequel.style.display="block";

}
}

</script>
Messages postés
7
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
16 juillet 2008

oui bien sur que je lis vos réponses! sinon je ne poserais pas de questions!
mais il faut aussi savoir interpréter les réponses et les utiliser à bon escient!
j'ai finis par résoudre le problème en déclarant tous les name différents dans mon code php
merci à tous!
par contre mon code javasrcipt ne fonctionne que sous firefox et pas sous ie
bof....

<script type="text/javascript">

var lequel;
var ra=document.getElementsByName("r");

for(i=0;i!=ra.length;i++){
ra[i].ind=i;
ra[i].onclick=function();{
if(lequel){
lequel.style.display="none";
}

lequel=document.getElementById("d"+this.ind);
lequel.style.display="block";

}
}

</script>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
une option n'a pas de name.

il faut utiliser :
le_select_en_question.options[n° de lige de l'option].text ou .value
sachant que le_select_en_question.selectedIndex c'est l'option sélectionnée

je pense d'aileurs ( à vérifier ) que le style.display n'est pas géré sur les option

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]