Plusieurs listes déroulantes qui affichent une seule image

CescoCorp

Nouveau membre
Bonjour,

De nombreux sujets portent sur les listes déroulantes et la fonction onChange() mais aucun n'a pu résoudre totalement mon problème.

En effet, j'ai réalisé plusieurs listes déroulantes qui possèdent toutes les mêmes champs, j'ai attribué à chaque champs un lien vers une image spécifique puis la fonction javascript onChange() m'affiche l'image correspondante.

J'ai alors à gauche mes listes déroulantes et à droite l'image qui s'affiche.
Dès que je clique sur l'un des champs de l'une des listes déroulantes, je voudrais que l'image correspondante s'affiche à droite. Il n'y aurait donc toujours qu'une seule image qui s'affiche!

Voici mon code :
Code:
<script LANGUAGE="JavaScript">
var current = 0;
function change(){
current=document.formname.place.selectedIndex;
document.images.show.src = document.formname.place[current].value;}
</script>

...

<form name="formname">

<select name="place" onChange="change();">
<option value="vide.png" selected="selected">Sélectionner</option>
<option value="img1.jpg">Champ1</option>
<option value="img2.jpg">Champ2</option>
</select>

<select name="place" onChange="change();">
<option value="vide.png" selected="selected">Sélectionner</option>
<option value="img1.jpg">Champ1</option>
<option value="img2.jpg">Champ2</option>
</select>

</form>

...

<img src="vide.png" name="show">
Si cette fonction s'exécute correctement pour une seule liste déroulante, elle ne fonctionne plus pour plusieurs.
D'où ma question : Est-il possible de n'afficher qu'une seule image avec une même fonction mais pour plusieurs listes déroulantes ?
 

KangOl

Grand Maître
tu comprends au moins le code que tu executes ?

parce que là, tous tes <select> ont le meme nom...
 

CescoCorp

Nouveau membre

Bien sûr que je comprends. Justement, si j'ai mis le même nom, c'est pour que ce soit la même fonction qui s'exécute.

Parce que j'ai essayé de changer de "name" dans "select" (un "name" différent pour chaque select) et faire autant de fonctions qu'il y a de select mais ça ne fonctionne pas non plus dès lors qu'on exécute une fonction semblable !! :??:

Ceci ne fonctionne pas non plus :
Code:
<script LANGUAGE="JavaScript">
var current = 0;
function change(){
current=document.formname.rang.selectedIndex;
document.images.show.src = document.formname.rang[current].value;

current=document.formname.place.selectedIndex;
document.images.show.src = document.formname.place[current].value;}
</script>

...

<form name="formname">

<select name="place" onChange="change();">
<option value="vide.png" selected="selected">Sélectionner</option>
<option value="img1.jpg">Champ1</option>
<option value="img2.jpg">Champ2</option>
</select>

<select name="rang" onChange="change();">
<option value="vide.png" selected="selected">Sélectionner</option>
<option value="img1.jpg">Champ1</option>
<option value="img2.jpg">Champ2</option>
</select>

</form>

...

<img src="vide.png" name="show">

Si quelqu'un trouve une solution, je suis preneur !!! :bounce:

Merci d'avance
 

KangOl

Grand Maître
et si tu passais l'element a la fonction ??

Code:
function change(what) {
  document.getElementById("show").src = what.value;
}
Code:
<select onchange="change(this);">
<option value="vide.png" selected="selected">Sélectionner</option>
<option value="img1.jpg">Champ1</option>
<option value="img2.jpg">Champ2</option>
</select>
<img src="vide.png" id="show">

et les "name" c'est fini :o faut passer par l'id (qui est unique !)
 

philoport9

Nouveau membre
J'ai essayé de m'inspirer de ce qui est inscrit pour faire mes modifications sur mon site. Car je veux aussi avoir deux listes déroulante, mais je n'y arrive pas. Et j'ai essayé avec l'ID au lieu du FORM NAME


Dans le HEAD j'ai ça :
function Lien() {
i = document.Choix.Liste.selectedIndex;
if (i == 0) return;
url = document.Choix.Liste.options.value;
parent.location.href = url;
}

Et dans mon body :
<FORM NAME="Choix">
<SELECT NAME="Liste" onChange="Lien()">
<OPTION VALUE="">Choisir une option
<OPTION VALUE="../../copains.html">Les copains
<OPTION VALUE="../../plongee/index.html">La plongée
<OPTION VALUE="http://www.google.com">Recherche
</SELECT>
</FORM>

Après modification selon la réponse proposé, j'ai tenté cela, mais en vain :

Dans la head :
<SCRIPT language="JavaScript">

function Lien(what) {
document.getElementById("show" ).src = what.value;
}

function Lien() {
i = document.Choix.Liste.selectedIndex;
if (i == 0) return;
url = document.Choix.Liste.options.value;
parent.location.href = url;
}
</script>

Dans le body :
<select onchange="Lien(this)" name="Liste"> <option>Choisir une option </option>
<option value="../../copains.html">Les copains </option>
<option value="../../..plonge/index.html">La plongée</option>
<OPTION VALUE="http://www.google.com">Recherche
/SELECT>
 

zeb

Modérateur
Salut,

Ce forum est régi par un règlement qui impose de proprement présenter le code grâce à une balise dédiée :
Code:
. Merci de le respecter.
 

philoport9

Nouveau membre
PRISE II AVEC LA FONCTION CODE

J'ai essayé de m'inspirer de ce qui est inscrit pour faire mes modifications sur mon site. Car je veux aussi avoir deux listes déroulante, mais je n'y arrive pas. Et j'ai essayé avec l'ID au lieu du FORM NAME


Dans le HEAD j'ai ça :
Code:
function Lien() { 
i = document.Choix.Liste.selectedIndex; 
if (i == 0) return; 
url = document.Choix.Liste.options[i].value; 
parent.location.href = url; 
}

Et dans mon body :
Code:
<FORM NAME="Choix"> 
<SELECT NAME="Liste" onChange="Lien()"> 
<OPTION VALUE="">Choisir une option 
<OPTION VALUE="../../copains.html">Les copains 
<OPTION VALUE="../../plongee/index.html">La plongée 
<OPTION VALUE="http://www.google.com">Recherche 
</SELECT> 
</FORM>
Après modification selon la réponse proposé, j'ai tenté cela, mais en vain :

Dans la head :
Code:
<SCRIPT language="JavaScript"> 

function Lien(what) { 
document.getElementById("show" ).src = what.value; 
} 

function Lien() { 
i = document.Choix.Liste.selectedIndex; 
if (i == 0) return; 
url = document.Choix.Liste.options[i].value; 
parent.location.href = url; 
} 
</script>

Dans le body :
Code:
<select onchange="Lien(this)" name="Liste"> <option>Choisir une option </option> 
<option value="../../copains.html">Les copains </option> 
<option value="../../..plonge/index.html">La plongée</option> 
<OPTION VALUE="http://www.google.com">Recherche 
/SELECT>
 

zeb

Modérateur
Salut,

Code:
' // Pas bon
document.Choix.Liste

'// Correct
document.forms.Choix.Liste
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut