Conflit entre deux combo liste dans une seul et meme page

caubced91 Messages postés 8 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 11 septembre 2010 - 12 janv. 2009 à 20:58
caubced91 Messages postés 8 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 11 septembre 2010 - 15 janv. 2009 à 17:33
Bonjour, j ai un petit problème de ........ heu  ..... "débutant"

Voila je m explique, je voudrais mettre dans une seul et même page deux combo liste (comprenant chacune deux liste liée)

voila le code source d' UNE combo liste:

<form name="doublecombo">
<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option>1</option>
<option>2</option>

</select>
<select name="stage2" size="1">
<option value="http://www.g1script.com">1.0</option>
<option value="http://www.crollen.com">1.1</option>
<option value="http://www.toutlapub.com">1.2</option>
</select>

<SCRIPT language="JavaScript" title="G1SCRIPT">
<!--

var groups=document.doublecombo.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("1.0","http://www")
group[0][1]=new Option("1.1","http://www.")
group[0][2]=new Option("1.2","http://www.")

group[1][0]=new Option("2.0","http://www.")
group[1][1]=new Option("2.1","http://www.")

var temp=document.doublecombo.stage2

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}

function go(){
location=temp.options[temp.selectedIndex].value
}
//-->

</SCRIPT>
</form>

Bon ce code marche parfaitement bien mais dès que je répète ce code dans ma page ça déconne a plein tube  ma Deuxième combo liste me renvoi sur les liens de ma Première combo liste.Donc je suppose que c est un probleme au niveau des variable ou des function qui porte le meme nom mais j ai beau avoir essayer de les renomer rien y fait je n arrive pas a les "individualiser".

J espere que j ai été clair et surtout que quelqu un pourra résoudre mon pti probleme

Merci d avance

6 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
13 janv. 2009 à 09:43
bonjour,
>>ce code marche parfaitement bien
>>mais dès que je répète ce code dans ma page ça déconne a plein tube
ça doit être normal, si tu ne fais que répéter le code.
il faut changer toutes les variables, tous les noms des éléments html,
   tous les noms des fonctions...
le mieux serait, probablement, de "généraliser ce code" pour qu'il
   prenne ces différences en paramètres.
Cordialement

            [mon Site] [M'écrire]  Bul         
0
caubced91 Messages postés 8 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 11 septembre 2010
13 janv. 2009 à 17:16
Merci de ta réponse

Oui j ai déjà essayer de renommer tout ce qu il fallai ( enfin je pense) mais ca bug toujours et pour ce qui est de "généraliser le code" ... ce n est pas dans mes cordes

Pourrais tu me dire ce qu il faudrai que je renome ( en le mettant juste en gras dans le code )  ou comment faire pour generaliser le code si c est possible

J te remercis d avance
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
14 janv. 2009 à 09:11
>>Pourrais tu me dire ce qu il faudrai que je renome
toutes les variables, toutes les fonctions, toutes les balises
>>en le mettant juste en gras dans le code
la coloration syntaxique ne fonctionne pas ponctuellement
>>ou comment faire pour generaliser le code si c est possible
c'est possible. fait des fonctions en leur passant en
paramètres les éléments qui différent pour l'un ou pour l'autre.
@+
0
caubced91 Messages postés 8 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 11 septembre 2010
14 janv. 2009 à 16:43
bonjour,

   voila les modif que j y ai apporté ( en gras dans la 2eme comboliste)  mais comme je disais ca marche toujours pas, j ai surement pas fait tous ce qu il fallait c est meme sur lol peut tu me dire ou est le probleme, ce que j ai oubliere stp

---------------------------------1ere comboliste-----------------------------------------------

<form name= "doublecombo">
<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option>1</option>
<option>2</option>

</select>
<select name="stage2" size="1">
<option value="http://www.g1script.com">1.0</option>
<option value="http://www.crollen.com">1.1</option>
<option value="http://www.toutlapub.com">1.2</option>
</select>

<SCRIPT language="JavaScript" title="G1SCRIPT">
<!--

var groups=document.doublecombo.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("1.0","http://www")
group[0][1]=new Option("1.1","http://www.")
group[0][2]=new Option("1.2","http://www.")

group[1][0]=new Option("2.0","http://www.")
group[1][1]=new Option("2.1","http://www.")

var temp=document.doublecombo.stage2

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}

function go(){
location=temp.options[temp.selectedIndex].value
}
//-->

</SCRIPT>
</form>

-------------------------------------2eme comboliste----------------------------------------

<form name=" doublecombo2 ">
<select name ="example2" size= "1" onChange=" redirect2 (this.options.selectedIndex)">
<option>12</option>
<option>22</option>

</select>
<select name ="stage22" size= "1">
<option value="http://www.g1script.com">12.0</option>
<option value="http://www.crollen.com">12.1</option>
<option value="http://www.toutlapub.com">12.2</option>
</select>

<SCRIPT language="JavaScript" title="G1SCRIPT">
<!--

var groups2 =document.doublecombo2.example2.options.length
var group2= new Array( groups2 )
for (i =0; i<groups2; i++)
group2[i]= new Array()

group2 [0][0] =new Option("12.0","http://www")
group2[0][1]= new Option("12.1","http://www.")
group2 [0][2] =new Option("12.2","http://www.")

group2[1][0]= new Option("22.0","http://www.")
group2 [1][1] =new Option("22.1","http://www.")

var temp2= document. doublecombo .stage22

function redirect2(x){
for (m =temp2.options.length-1;m>0;m--)
temp2.options[m]= null
for (i=0;i< group2 [x].length;i++){
temp2.options[i] =new Option(group2[x][i].text,group2[x][i].value)
}
temp2.options[0].selected=true
}

function go(){
location=temp2.options[temp2.selectedIndex].value
}
//-->

</SCRIPT>
</form>

ca serai sympa de ta part si tu pouvais me corriger merci d avance

@++
0

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

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
14 janv. 2009 à 18:34
ben déjà :
var temp2=document.doublecombo.stage22
st stage22 n'existe pas dans doublecombo....

il faut utiliser les outils qui existent :

Navigateurs |Quelques Expplications |----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger mon Site][M'écrire]Bul
0
caubced91 Messages postés 8 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 11 septembre 2010
15 janv. 2009 à 17:33
merci de ta réponse ca ne m aide pas trop etant donné que je ne m y connais pas vraiment vraiment en javascript mais merci quand meme

 je vais essayer de chercher ailleurs

@+
0
Rejoignez-nous