Changer une valeur dans un select

Signaler
Messages postés
6
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
23 août 2007
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à toutes et à tous!

J'ai deux balises select, avec dans chacunes d'elles le même nombre de données!
Lorsque je sélectionne une donnée dans la première balise select, je souhaiterai que ma deuxième balise select change aussi, en ne gardant que les valeurs supérieures à celle selectionné dans la première balise.

Voici une partie du code pour vous donner une idée :
// Première balise select rempli par une boucle en php :

<tr class="contenu_tableau_rosters"><td>Quaterback (QB)</td><td><select name="active0" id="active0" onChange="javascript:change_start()" >
<?php
 $qb = 0;
 while($qb<7){
    echo '<option value="',$qb,'"';
 echo '>',$qb,'</option>';
 $qb++;
}?></select></td>

// Deuxième balise select rempli de la même façon :
<td><select name="max0" id="max0" onchange="javascript:change_start()">
<?php


 $j = 'no limit';
 $max_qb = 1;
 while($max_qb<8){
   if($max_qb == 7){
  echo'<option value="',$j,'"';
  echo '>',$j,'</option>';
  }
  else{
     echo '<option value="',$max_qb,'"';
  echo '>',$max_qb,'</option>';
  }
 
 $max_qb++;
}?></select></td></tr>

Voici la fonction javascript :

<script language="javascript">


function change_start(){
var change = document.forms.f.active0.selectedIndex;
document.forms.f.max0. options[0].text = change+1;
}</script>

Comment puis je faire pour que ma variable "change" soit accessible en dehors de ma fonction, car la fonction change bien ma valeur dans ma deuxième balise select, mais, la boucle php est toujours active, et donc les valeurs inférieures sont aussi dans mon select?

J'espère avoir été assez clair, sinon n'hésitez pas à me poser des questions, merci d'avance pour vos réponses!

A bientôt

Raph

10 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
bonjour,

>>Lorsque je sélectionne une donnée dans la première balise select,
>>je souhaiterai que ma deuxième balise select change aussi,
   pas compris...
   on sélectionne dans le 1er select, il n'est pas modifié. 
   ou alors, la ligne sélectionnée dans le 1er select ==>
         sélection du même option dans le 2ème ?

>>en ne gardant que les valeurs supérieures à celle selectionné dans la première balise.
   j'ai besoin d'explications...

et s'il te plais : ne met pas le php ! met la page html générée !






<hr />
            Cordialement       Bul       [
Messages postés
6
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
23 août 2007

Voici le html généré :

<form
method="post" name="f">
<table id="tableau_rosters"><tr class="ligne_titre_tableau_rosters">
<td>Joueurs Offensifs</td><td>Titulaires</td>
<td>Max titulaires autorisés</td></tr>


<tr class="contenu_tableau_rosters"><td>Quaterback (QB)</td>
<td><select name="active0" id="active0"
onChange="javascript:change_start()" >
<option value="0">0</option><option value="1">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option></select></td><td>
<select name="max0" id="max0" onchange="javascript:change_start()">
<option value="1">1</option><option value="2">2</option>
<option value="3">3</option><option value="4">4</option>
<option value="5">5</option><option value="6">6</option>
<option value="no limit">no limit</option></select></td></tr>


En fait ce sont deux balises select séparées, en selectionnant
un chiffre dans ma première balise, je souhaite conserver ce chiffre
dans la première balise mais aussi que le deuxième select se modifie
automatiquement dès qu'un chagngement est fait sur la première balise!

Exemple:
Dans ma 1ère balise select, j'ai des données de 0 à 6!
Si je selectionne le chiffre 3, il faut que dans ma deuxième balise
le 3 apparaisse aussi et lors du déroulement de celle ci, que les
valeurs inférieures à 3 est disparues!

J'espère avoir été un peu plus claire!

Merci
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>Si je selectionne le chiffre 3, il faut que dans ma deuxième balise   le 3 apparaisse aussi

<select onchange="document.getElementById('s2').selectedIndex=this.selectedIndex;" size=3>
 <option>0
 <option>1
 <option>2
 <option>3
 <option>4
 <option>5
 <option>6
</select>
<select id="s2" size=3>
 <option>0
 <option>1
 <option>2
 <option>3
 <option>4
 <option>5
 <option>6
</select>

>>et lors du déroulement de celle ci, que les valeurs inférieures à 3 est disparues!
   ah ! remettre si on sélectionne, après 1, par exemple ?
   il faut donc, à chaque change sur le 1er select, recréer le 2ème.

   un truc dans ce genre : ( pas testé réellement ! )

<select onchange=" var s=document.getElementById('s2');
                            s.options.length=0;
                            for ( var l=this.selectedIndex;l<this.options.length;l++ )
                            {    s.options.length++;
                                 s.options[s.options.length-1].text=l;
                            }
                         " size=3>

<hr />
            Cordialement          Bul      
Messages postés
6
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
23 août 2007

Merci pour ces infos, je vais tester tout ça, et je vous tiens au courant.

Cordialement.
Messages postés
6
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
23 août 2007

Nickel, ça fonctionne très bien, merci pour tout!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>
ça fonctionne très bien
    nickel.   merci de nous l'avoir dit.


<hr />                Cordialement          Bul        
Messages postés
6
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
23 août 2007

Bonjour,

concernant mon pb d'hier, tout fonctionne, maintenant j'aimerai calculer la somme des valeurs de mes select dans l'évenement onchange!


Dans mon formulaire j'ai deux colonnes de select avec plus de 20 lignes, donc en tout 40 select! Je veux calculer seulement la première colone de select celle qui à l'événement onChange, j'espère être assez claire, merci pour votre aide
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>Dans mon formulaire j'ai deux colonnes de select avec plus de 20
lignes, donc en tout 40 select!
    euh ? 40 <option> vous vouliez dire, non ?

>>Je veux calculer seulement la première
colone de select celle qui à l'événement onChange,
    calculer ? la 1ère colonne ? pas compris.

    si c'est "accéder aux données de l'option sélectionnée" :
       <select... onchange="     utiliser this.options[this.selectedIndex].text  ou
                                                            
this.options[this.selectedIndex].value "... >




>>j'espère être assez
claire,
    désolé. pas pour moi... mais je suis un peu limité.




<hr />                                Cordialement            Bul        
Messages postés
6
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
23 août 2007

en fait j'ai bien 40 select, réparties en deux colonnes, la première en à 20 et la seconde pareil!

Quand dans la première colonne de select , je clic sur un select et change la valeur, grâce à votre code d'hier le select de la deuxième colonne est modifié, mais maintenant j'ai besoin de faire l'addition de toutes les valeurs des select de ma première colonne pour faire un total en temps réel!

Exemple : Partons du principe que j'ai trois select à additionner, dès qu'un select est modifié le total qui est affiché dans la page doit lui aussi changé!

1 er select = 2
2 e = 3
3 e = 5

le tout fait 10! mais si l'on change la valeur du premier select, le total doit lui aussi être modifié!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>j'ai besoin de faire l'addition de toutes les valeurs des select de ma première colonne pour faire un total en temps réel!
    le n° de ligne sélectionnée, c'est le select.selectedIndex,
    le 1er n° de ligne, c'est 0
    la dernière c'est le select.options.length-1
    une ch'tit boucle ( for ) ,
        addition du value ( ou du text ? ) de chaque options vers une variable.    
        toto+=Number(le select.options[n° de ligne traitée].value ou text);





<hr />
                                Cordialement            Bul