Je vous colle avec cette triple liste deroulante , hein ! [Résolu]

Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
- - Dernière réponse : frvfrvfrvfrv
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
- 2 févr. 2006 à 15:17
je veux faire apparaitre une image selon une triple liste deroulante.
l'image change selon la selection, et ceci avant d'activer le fichier html attaché.
Si vous avez une idée !
le code épurer pour vous:


<html>
<HEAD>
<SCRIPT LANGUAGE= "JavaScript">

var menu =new CreerMenu(3," groupe "," sous groupe "," img final ","titre 4","self");

menu.Add(1,"groupe a",""); // avoir une image du groupe a

menu.Add(2,"sous groupe 1",""); // avoir une image sous groupe 1
menu.Add(3,"img a 1","html1.html"); // avoir une image img a 1
menu.Add(3,"img b 1","html2.html"); // avoir une image img b 1
menu.Add(2,"sous groupe 2","");
menu.Add(3,"img a 2","html3.html");
menu.Add(3,"img b 2","html4.html");
menu.Add(1,"groupe b","");
menu.Add(2,"sous groupe 1","");
menu.Add(3,"img b 1","html5.html");
menu.Add(3,"img b 1","html6.html");
menu.Add(2,"sous groupe 2","");
menu.Add(3,"img b 2","html7.html");
menu.Add(3,"img b 2","html8.html");
menu.Add(3,"img b 2","html9.html");
menu.Add(3,"img b 2","html10.html");
function CreerMenu(profondeur,titre1,titre2,titre3,titre4,target) {this.nb0; this .profprofondeur;this.titre1titre1; this .titre2titre2; this.titre3= titre3; this .titre4 =titre4; this.target= target
this .Add =AddObjet;
this.Aff= AffMenu;
}
function AddObjet(deep,txt,page) {
var rub = new Object;
rub.deep= deep;
rub.txt=txt;
rub.page=page;
this [this.nb] =rub;
this.nb++;
}
function AffMenu() {
var Z= "<FORM name='mf'>";
Z+="<SELECT size=1 name='list1' onChange='Clic(1)'><OPTION selected>"+ this .titre1+"</OPTION>";
for (var i =0;i<this.nb;i++) {
if (this[i].deep= =1) {
Z+="<OPTION value='"+i+"'>"+ this [i].txt+"</OPTION>"
}
}
Z+ ="</SELECT>";
for (var i= 2;i<=menu.prof;i++) {
Z+="<SELECT name='list"+i+"' onChange='Clic("+i+")'><OPTION>"+eval("menu.titre"+i)+"</OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION></SELECT>";
}
Z+="</FORM>";
document.write(Z);
}
function add() {
var c =new Option("ADD","",true,true);
document.forms[0].elements["list"].options[0]= c;
}
function Clic(no) {
var valeur =document.forms["mf"].elements["list"+no].options[ document.forms["mf"].elements["list"+no].selectedIndex].value;
if ((valeur!= "")&&(valeur!= null )&&(no<menu.prof)) {
var deep =menu[valeur].deep;
var no2= 1;
for (var noX =(no+1);noX<= menu.prof;noX++) {
document.forms["mf"].elements["list"+eval(noX)].options.length=0;
var titre =eval("menu.titre"+noX);
var c= new Option(titre);
document.forms["mf"].elements["list"+(noX)].options[0] =c;
document.forms["mf"].elements["list"+(noX)].selectedIndex= 0;
}
valeur++;
for (var i =valeur;i<menu.nb;i++) {
//alert(i);
if (menu[i].deep = = deep+1) {
//alert("no="+no+" texte="+menu[i].txt);
var c =new Option(menu[i].txt,i);
document.forms["mf"].elements["list"+(no+1)].options[no2]= c;
no2++;
} else { if (menu[i].deep == deep){i=menu.nb;}}
}
document.forms["mf"].elements["list"+(no+1)].options.length=no2+1;
document.forms["mf"].elements["list"+(no+1)].selectedIndex=0;
Clic(no+1)
valeur--;
}
if ((valeur! ="")&&(valeur!= null )) {
var page =menu[valeur].page;
if ((page!= "")&&(page!= null )) {
if (menu.target == "self") {window.location=page}
else if (menu.target == "_blank") {window.open(page,"","menubar,scrollbars,toolbar,status,location")}
else {parent.frames[menu.target].location.href =page;}
}
}
}
</SCRIPT>
</HEAD>
<body leftmargin= 0 marginwidth=0 bgcolor="#FFFFFF" vlink="#0000A0" link="#0000FF" scroll="no">
<base target="_this">

<div id="vil" style="position:absolute; top:80%; left:45%; z-index:3;">
<img name="imag" src="dfg.gif" alt="img change selon select">
</div>
// c'est cette image qui doit changer ...

<div id="conteneur" style="position:absolute; top:40%;left:24%;z-index:2;">
<SCRIPT language="JavaScript">
menu.Aff();
</SCRIPT>
</div>
<script>
function change_site() {
var site = document.menu.popup.selectedIndex;
{
window.location.href =
document.menu.popup.options[site].value;
}
}
</script>
</BODY>
</HTML>
Afficher la suite 

19 réponses

Meilleure réponse
Messages postés
34
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
15 octobre 2006
1
3
Merci
Salut;

est ce que ce que tu veux faire c'est :

1/ quand tu changes la selection de ta premiere liste, tu affciche l'image correspondante à ta selection dans la liste1,

2/ quand tu change la selection de ta seconde liste, tu affiche l'image correspondante à ta selection dans ta seconde liste

3/ de meme avec la liste 3



dans ce cas tu peux faire ca (en ayant des images groupe a.gif, sous groupe 1.gif, etc ....)



<html>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">



var menu=new CreerMenu(3," groupe "," sous groupe "," img final ","titre 4","self");



menu.Add(1,"groupe a",""); // avoir une image du groupe a



menu.Add(2,"sous groupe 1",""); // avoir une image sous groupe 1

menu.Add(3,"img a 1","html1.html"); // avoir une image img a 1

menu.Add(3,"img b 1","html2.html"); // avoir une image img b 1

menu.Add(2,"sous groupe 2","");

menu.Add(3,"img a 2","html3.html");

menu.Add(3,"img b 2","html4.html");

menu.Add(1,"groupe b","");

menu.Add(2,"sous groupe 1","");

menu.Add(3,"img b 1","html5.html");

menu.Add(3,"img b 1","html6.html");

menu.Add(2,"sous groupe 2","");

menu.Add(3,"img b 2","html7.html");

menu.Add(3,"img b 2","html8.html");

menu.Add(3,"img b 2","html9.html");

menu.Add(3,"img b 2","html10.html");





function CreerMenu(profondeur,titre1,titre2,titre3,titre4,target) {

this.nb=0;this.prof=profondeur;

this.titre1=titre1; this.titre2=titre2; this.titre3=titre3; this.titre4=titre4; this.target=target

this.Add=AddObjet;

this.Aff=AffMenu;

}





function AddObjet(deep,txt,page) {

var rub = new Object;

rub.deep=deep;

rub.txt=txt;

rub.page=page;

this[this.nb]=rub;

this.nb++;

}





function AffMenu() {

var Z="<FORM name='mf'>";

Z+="<SELECT size=1 name='list1'
onChange='Clic(1)'><OPTION
selected>"+this.titre1+"</OPTION>";

for (var i=0;i<this.nb;i++) {

if (this[i].deep==1) {

Z+="<OPTION value='"+i+"'>"+this[i].txt+"</OPTION>"

}

}

Z+="</SELECT>";



for (var i=2;i<=menu.prof;i++) {

Z+="<SELECT name='list"+i+"'
onChange='Clic("+i+")'><OPTION>"+eval("menu.titre"+i)+"</OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION></SELECT>";

}

Z+="</FORM>";

document.write(Z);

}





function add() {

var c=new Option("ADD","",true,true);

document.forms[0].elements["list"].options[0]=c;

}





function Clic(no) {

var
valeur=document.forms["mf"].elements["list"+no].options[
document.forms["mf"].elements["list"+no].selectedIndex].value;



/**********************************************************************/

var img = menu[valeur].txt + ".gif";

document.getElementById("imag").src = img;

document.getElementById("imag").alt = img;

/**********************************************************************/



if ((valeur!="")&&(valeur!=null)&&(no<menu.prof)) {

var deep=menu[valeur].deep;

var no2=1;

for (var noX=(no+1);noX<=menu.prof;noX++) {

document.forms["mf"].elements["list"+eval(noX)].options.length=0;

var titre=eval("menu.titre"+noX);

var c=new Option(titre);

document.forms["mf"].elements["list"+(noX)].options[0]=c;

document.forms["mf"].elements["list"+(noX)].selectedIndex=0;

}

valeur++;



for (var i=valeur;i<menu.nb;i++) {

//alert(i);

if (menu[i].deep==deep+1) {

//alert("no="+no+" texte="+menu[i].txt);

var c=new Option(menu[i].txt,i);



document.forms["mf"].elements["list"+(no+1)].options[no2]=c;

no2++;

} else { if (menu[i].deep==deep){i=menu.nb;}}

}

document.forms["mf"].elements["list"+(no+1)].options.length=no2+1;

document.forms["mf"].elements["list"+(no+1)].selectedIndex=0;

Clic(no+1)

valeur--;

}



if ((valeur!="")&&(valeur!=null)) {

var page=menu[valeur];

if ((page!="")&&(page!=null)) {

if (menu.target=="self") {window.location=page}

else if
(menu.target=="_blank")
{window.open(page,"","menubar,scrollbars,toolbar,status,location")}

else {parent.frames[menu.target].location.href=page;}

}

}

}





</SCRIPT>

</HEAD>



















<!-- TODO : j'ai fai une modif ici aussi ;) -->























// c'est cette image qui doit changer ...





<SCRIPT language="JavaScript">

menu.Aff();

</SCRIPT>



<script>

function change_site() {

var site = document.menu.popup.selectedIndex;

{

window.location.href =

document.menu.popup.options[site].value;

}

}

</script>



</HTML>





Vincent Demay

http://www.demay-fr.net

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de xdoume
Messages postés
34
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
15 octobre 2006
1
3
Merci
Salut,



Pour le probleme de lien, j'ai pas trop de le temps de regarder ca ce soir mais j'essaierai d'y jeter un coup d'oeuil demain....



sinon pour le repertoire pour les images, tu peux essayer de faire :



/**********************************************************************/
var img = menu[valeur].txt + ".gif";
document.getElementById("imag").src = "images/" + img;
document.getElementById("imag").alt = img;
/**********************************************************************/



Cordialement;



Vincent Demay

http://www.demay-fr.net

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de xdoume
Messages postés
34
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
15 octobre 2006
1
3
Merci
Salut, j'ai corrigé ton pb sur le lien html voici le nouveau code :



<html>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">



var menu=new CreerMenu(3," groupe "," sous groupe "," img final ","titre 4","self");



menu.Add(1,"groupe a",""); // avoir une image du groupe a



menu.Add(2,"sous groupe 1",""); // avoir une image sous groupe 1

menu.Add(3,"img a 1","html1.html"); // avoir une image img a 1

menu.Add(3,"img b 1","html2.html"); // avoir une image img b 1

menu.Add(2,"sous groupe 2","");

menu.Add(3,"img a 2","html3.html");

menu.Add(3,"img b 2","html4.html");

menu.Add(1,"groupe b","");

menu.Add(2,"sous groupe 1","");

menu.Add(3,"img b 1","html5.html");

menu.Add(3,"img b 1","html6.html");

menu.Add(2,"sous groupe 2","");

menu.Add(3,"img b 2","html7.html");

menu.Add(3,"img b 2","html8.html");

menu.Add(3,"img b 2","html9.html");

menu.Add(3,"img b 2","html10.html");





function CreerMenu(profondeur,titre1,titre2,titre3,titre4,target) {

this.nb=0;this.prof=profondeur;

this.titre1=titre1; this.titre2=titre2; this.titre3=titre3; this.titre4=titre4; this.target=target

this.Add=AddObjet;

this.Aff=AffMenu;

}





function AddObjet(deep,txt,page) {

var rub = new Object;

rub.deep=deep;

rub.txt=txt;

rub.page=page;

this[this.nb]=rub;

this.nb++;

}





function AffMenu() {

var Z="<FORM name='mf'>";

Z+="<SELECT size=1 name='list1'
onChange='Clic(1)'><OPTION
selected>"+this.titre1+"</OPTION>";

for (var i=0;i<this.nb;i++) {

if (this[i].deep==1) {


Z+="<OPTION value='"+i+"'>"+this[i].txt+"</OPTION>"

}

}

Z+="</SELECT>";



for (var i=2;i<=menu.prof;i++) {

Z+="<SELECT
name='list"+i+"'
onChange='Clic("+i+")'><OPTION>"+eval("menu.titre"+i)+"</OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION></SELECT>";

}

Z+="</FORM>";

document.write(Z);

}





function add() {

var c=new Option("ADD","",true,true);

document.forms[0].elements["list"].options[0]=c;

}





function Clic(no) {

var
valeur=document.forms["mf"].elements["list"+no].options[
document.forms["mf"].elements["list"+no].selectedIndex].value;



/**********************************************************************/

var img = menu[valeur].txt + ".gif";

document.getElementById("imag").src = img;

document.getElementById("imag").alt = img;

/**********************************************************************/



if ((valeur!="")&&(valeur!=null)&&(no<menu.prof)) {

var deep=menu[valeur].deep;

var no2=1;

for (var noX=(no+1);noX<=menu.prof;noX++) {


document.forms["mf"].elements["list"+eval(noX)].options.length=0;

var titre=eval("menu.titre"+noX);

var c=new Option(titre);

document.forms["mf"].elements["list"+(noX)].options[0]=c;

document.forms["mf"].elements["list"+(noX)].selectedIndex=0;

}

valeur++;



for (var i=valeur;i<menu.nb;i++) {

//alert(i);

if (menu[i].deep==deep+1) {


//alert("no="+no+" texte="+menu[i].txt);

var c=new Option(menu[i].txt,i);


document.forms["mf"].elements["list"+(no+1)].options[no2]=c;

no2++;

} else { if (menu[i].deep==deep){i=menu.nb;}}

}

document.forms["mf"].elements["list"+(no+1)].options.length=no2+1;

document.forms["mf"].elements["list"+(no+1)].selectedIndex=0;

Clic(no+1)

valeur--;

}



if ((valeur!="")&&(valeur!=null)) {

/************************************************/

var page=menu[valeur].page;

/*************************************************/

if ((page!="")&&(page!=null)) {

if (menu.target=="self") {window.location=page}

else
if (menu.target=="_blank")
{window.open(page,"","menubar,scrollbars,toolbar,status,location")}

else {parent.frames[menu.target].location.href=page;}

}

}

}





</SCRIPT>

</HEAD>



















<!-- TODO : j'ai fai une modif ici aussi ;) -->























// c'est cette image qui doit changer ...





<SCRIPT language="JavaScript">

menu.Aff();

</SCRIPT>



<script>

function change_site() {

var site = document.menu.popup.selectedIndex;

{

window.location.href =

document.menu.popup.options[site].value;

}

}

</script>



</HTML>



@ +



Vincent Demay

http://www.demay-fr.net

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de xdoume
Messages postés
34
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
15 octobre 2006
1
0
Merci
Salut



pourquoi ne pas faire tout simplement un

document.getElementById("imag").src = document.forms["mf"].elements["list2"].value



Vincent Demay

http://www.demay-fr.net
Commenter la réponse de xdoume
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
bonjour a toi,
merci , pour ton aide,
mais que veux tu dire? où mettre getelementbyid !
Commenter la réponse de frvfrvfrvfrv
Messages postés
34
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
15 octobre 2006
1
0
Merci
Si j'ai bien compris, ton but est de changer l'image en fonction de tes
selections dans tes listeBox. Si c'est ca tu mais le
document.getElementById... sur le on change de ta derniere listBox



Vincent Demay

http://www.demay-fr.net
Commenter la réponse de xdoume
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
bonjour ou bonsoir,

Merci de l'interet que tu porte a mon modeste projet.
je sais que je suis pas bien fort dans le script,
mais peux tu me faire un exemple , par exemple en prenant un morceau du script et y integrer ton idée.
si tu as le temp....
ca serais sympathique,

merci à toi.

cordialement.

NB. il serais meme judicieux de ma part de signaler que je souhaite une image diferente pour les deux premiere selection, car la troisieme peu directement active le fichier html. car lui a deja son image.

merci, si je me suis bien exprimer.
Commenter la réponse de frvfrvfrvfrv
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
Bonjour à toi vincent !

Super les modif sur le script ,
merci infiniment.

pour les images c'est nickel, sauf que pour activer les fichier html ! ca bug , voici le code que donne mon naviguateur dans la barre d'adresse ! [object Object]

au debut le fichier html1.html n'exister pas !
apres l'avoir creer cela ne marche toujours pas !

Merci de me dire ce qui ne va pas !

Et encore merci pour ton aide precieuse.
Commenter la réponse de frvfrvfrvfrv
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
re salut ! vincent!

et si mes images sont dans un repertoire , je fais comment ?
(car je ne souhaite pas avoir mes images sur la racine.)

j'ai essayer de modifier le getelementbyid(imag):

l'original :

/**********************************************************************/
var img = menu[valeur].txt + ".gif";
document.getElementById("imag").src = img;
document.getElementById("imag").alt = img;
/**********************************************************************/

ma modif :


/**********************************************************************/
var img = menu[valeur].txt + ".gif";
document.getElementById("imag").src+'img/vil'= img;
document.getElementById("imag").alt = img;
/**********************************************************************/

mais cela marche pas et ca enleve ma liste.

N.B Je suis aller sur ton site, mais le mailing ne fonctionne pas. !

Cordialement frv (qu'est pas doué !) :)
Commenter la réponse de frvfrvfrvfrv
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
bjr vincent !

Un grand merci, d'avoir répondu aussi vite.
hé oui tu a raison , c'est simple comme tout pour le repertoire d'images.

J'aurais dû m'en douter , moi qui a fait qlq programme en basic.
je perd la tete moi ! :)

Je vais essayer cela des ce soir ! et encore merci.............. infiniment. !
Cordialement franck !
Commenter la réponse de frvfrvfrvfrv
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
Cool , super ! merci vincent !
ca marche du tonnerre !

Mais........

Désolé de mettre un [MAIS].

Un autre probleme persiste, une fois la page charger, il n'y pas l'image par defaut,
et........
si on a commencer a choisir dans la liste une image , et que l'on :
soit on revient sur l'ennoncer (groupe) en cliquant directement dedans......
soit en faisant (re)-derouler la liste vers le haut pour atteindre l'ennoncer (groupe) :

et bien c'est toujour l'image qui etait afficher avant qui reste , et non pas celle par défaut !

N.B tu as fait un boulot geant vincent, mais si ta pas le temps de m'aider pour cela , c'est pas grave je verrais pour afficher un div pour cacher le defaut au demmarrage.

et une derrniere question, comment as tu appris tout cela ? et est il possible de trouver de bon cours sur le net ?

En tout cas , MERCI à toi et bonne année à tous....
Commenter la réponse de frvfrvfrvfrv
Messages postés
34
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
15 octobre 2006
1
0
Merci
Salut,

Merci pour les compliments



En ce qui concerne les méthodes pour apprendre le javascript ou tout autre langage,

c'est avant tout la pratique (il faut dire que je bosse dans le domaine aussi)... et la lecture

du code des autres.

Sinon pour tout ce qui est développement web, il y a un site que j'affectionne particulièrement

c'esthttp://fr.selfhtml.org/.

Il est pas mal du tout, surtout la SELFHTML Quickbar.



J'essaierai quand meme de jeter un coup d'oeuil à ton pb, mais je n'ai pas tout à fait compris quel

est le pb



@ plus;



Vincent Demay

http://www.demay-fr.net
Commenter la réponse de xdoume
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
salut vincent , et un grand merci, pour ton aide.

le probleme que j'ennoncer ci-dessus:

<!-- TODO : j'ai fai une modif ici aussi ;) -->

c'est cette image (l'image par defaut.), elle ne s'affiche jamais.

l'autre blem qui est pas facile de décrire , mais je vais essayer:

c'est au niveau de la liste (triple),
si on commence a faire defiler la premiere liste, et qu'on reviens sur le texte de defaut*
et bien c'est l'image dernierement afficher qui reste a l'ecran , au lieu de retrouver l'image dfg.gif
ici texte defaut = groupe ---------1
c'est la ligne : V
var menu =new CreerMenu(3," groupe "," sous groupe "," img final ","titre 4","self");

j'espere que je suis pas trop dans les nuages :p , c'est compliquer d'expliquer celà.

Cordialement frv

*=le texte (defaut) c'est le texte que l'on trouve dans la premiere liste dès que la page est charger...(groupe)
Commenter la réponse de frvfrvfrvfrv
Messages postés
5
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
2 février 2006
0
Merci
bonjour a tous ,
Ce script est tres interressant . Aussi ,je me demandais s'il serait possible d'ouvrir des fichiers html a la palce des images ????
Commenter la réponse de Eurolines
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
salut eurolines,

oui c'est possible,
d'ailleurs cette source vient de se site, à l'origine.
je l'avais juste modifier pour les images.

voici la source:

<HTML><HEAD>
<SCRIPT LANGUAGE= "JavaScript">
<!-- n'oublie pas de changer les textes dans les premier guillemet -->
var menu =new CreerMenu(3," **** 1 - un thème **** "," **** 2 - un sujet **** "," **** 3 - un site **** ","titre 4","_blank");
menu.Add(1,"Internet","");
menu.Add(2,"Création de sites","");
menu.Add(3,"Tout JavaScript.com","fichier_html.html");
menu.Add(3,"All HTML","fichier_html.html");
menu.Add(3,"Praktica","fichier_html.html");
menu.Add(2,"Graphismes","");
menu.Add(3,"ZoneGifs","fichier_html.html");
menu.Add(3,"GoGraph","fichier_html.html");
menu.Add(2,"Hébergement","");
menu.Add(3,"Free.fr","fichier_html.html");
menu.Add(3,"Multimania","fichier_html.html");
menu.Add(3,"Chez","fichier_html.html");

menu.Add(1,"Matériel","");
menu.Add(2,"Documentation","");
menu.Add(3,"Hardware.fr","fichier_html.html");
menu.Add(3,"Choix PC","fichier_html.html");
menu.Add(3,"VTR Hardware","fichier_html.html");
menu.Add(2,"Enchères","");
menu.Add(3,"IBazar","fichier_html.html");
menu.Add(3,"Aucland","fichier_html.html");
menu.Add(2,"Fabricants","fichier_html.html");
menu.Add(3,"Intel","fichier_html.html");
menu.Add(3,"AMD","fichier_html.html");
menu.Add(3,"Macintosh","fichier_html.html");

function CreerMenu(profondeur,titre1,titre2,titre3,titre4,target) {this.nb0; this .profprofondeur;this.titre1titre1; this .titre2titre2; this.titre3= titre3; this .titre4 =titre4; this.target= target
this .Add =AddObjet;
this.Aff= AffMenu;
}
function AddObjet(deep,txt,page) {
var rub = new Object;
rub.deep= deep;
rub.txt=txt;
rub.page=page;
this [this.nb] =rub;
this.nb++;
}
function AffMenu() {
var Z= "<FORM name='mf'>";
Z+="<SELECT size=1 name='list1' onChange='Clic(1)'><OPTION selected>"+ this .titre1+"</OPTION>";
for (var i =0;i<this.nb;i++) {
if (this[i].deep= =1) {
Z+="<OPTION value='"+i+"'>"+ this [i].txt+"</OPTION>"
} }
Z+ ="</SELECT>";
for (var i= 2;i<=menu.prof;i++) {
Z+="<SELECT name='list"+i+"' onChange='Clic("+i+")'><OPTION>"+eval("menu.titre"+i)+"</OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION><OPTION></OPTION></SELECT>";
}
Z+="</FORM>";
document.write(Z);
}
function add() {
var c =new Option("ADD","",true,true);
document.forms[0].elements["list"].options[0]= c;
}
function Clic(no) {
var valeur =document.forms["mf"].elements["list"+no].options[ document.forms["mf"].elements["list"+no].selectedIndex].value;
if ((valeur!= "")&&(valeur!= null )&&(no<menu.prof)) {
var deep =menu[valeur].deep;
var no2= 1;
for (var noX =(no+1);noX<= menu.prof;noX++) {
document.forms["mf"].elements["list"+eval(noX)].options.length=0;
var titre =eval("menu.titre"+noX);
var c= new Option(titre);
document.forms["mf"].elements["list"+(noX)].options[0] =c;
document.forms["mf"].elements["list"+(noX)].selectedIndex= 0;
}
valeur++;
for (var i =valeur;i<menu.nb;i++) {
//alert(i);
if (menu[i].deep = = deep+1) {
//alert("no="+no+" texte="+menu[i].txt);
var c =new Option(menu[i].txt,i);
document.forms["mf"].elements["list"+(no+1)].options[no2]= c;
no2++;
} else { if (menu[i].deep == deep){i=menu.nb;}}
}
document.forms["mf"].elements["list"+(no+1)].options.length=no2+1;
document.forms["mf"].elements["list"+(no+1)].selectedIndex=0;
Clic(no+1)
valeur--;
}
if ((valeur! ="")&&(valeur!= null )) {
var page =menu[valeur].page;
if ((page!= "")&&(page!= null )) {
if (menu.target == "self") {window.location=page}
else if (menu.target == "_blank") {window.open(page,"","menubar,scrollbars,toolbar,status,location")}
else {parent.frames[menu.target].location.href =page;}
}
}
}function space(i) {var Z""; for (<gras>var j</gras>0;j"&nbsp;&nbsp;&nbsp;&nbsp;";}return Z}
function Arbo(m) {
var Z= "
";
for (var i =0;i<m.nb;i++) {
Z+=space(m[i].deep)+m[i].txt+"&nbsp;&nbsp; +m[i].page+"'>"+m[i].page+"
"
}
document.write(Z);
}
</SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#FFFFFF" alink="#000066" link="#000066" vlink="#000066" >
<FONT FACE="Arial" SIZE='-1' COLOR="#000099">
<CENTER><BIG>Menu arborescent par listes déroulantes </BIG></CENTER>
<BR>
<SCRIPT language="JavaScript">
menu.Aff();
</SCRIPT>
<SCRIPT language="JavaScript">
Arbo(menu);
</SCRIPT>
</BODY></HTML>

Tu peux avoir le système de liste pour les régions de France dans un zip , sur ce site!
Bien cordialement frv.
N.B remercions ceux qui l'on fait ! ..................... Merci (l'original)
Commenter la réponse de frvfrvfrvfrv
Messages postés
5
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
2 février 2006
0
Merci
Merci frvfrvfrvfrv ce script marche super bien .
Maintenant j'aimerai avoir une ouverture de fichier en plus lors du deuxieme choix de la liste deroulante .

Lorsque nous utilisons le script avec image , on ouvre une image avant d'ouvrir un fichier html au troisieme choix.
Mon souhait serait d'ouvrir un fichier html au deuxieme choix et un autre au troisieme .

Est ce possible ?
Qelqu'un a t il une idée ?

D'avance merci pour vos reflexions et aides ..
Commenter la réponse de Eurolines
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
Salut ,
Je ne comprend pourquoi tu veux ouvrir un fichier au deuxième ET aux troisième choix ?
IL n'est pas concevable d'activer la deuxième liste sans activer la troisième !
Puisque dès que la deuxième sera choisi, la troisième serai désactiver.
Enfin tu vois ce que je veux dire ....
Sinon, si j'ai mal compris, essaye d'être plus claire.

Cordialement frv
Commenter la réponse de frvfrvfrvfrv
Messages postés
5
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
2 février 2006
0
Merci
Salut frv ,
en fait je me basais sur l'exemple avec les images.
Et je souhaitais un fonctionnement similaire : Ouvrir un "apercu" en html lors de la deuxieme selection avant d'ouvrir un fichier html au troisieme choix.
Je pensais que c'etait possible , mais si je comprend bien d'apres ce que tu me dis mes espoirs tombent à l'eau :
"Puisque dès que la deuxième sera choisi, la troisième serai désactiver."
Commenter la réponse de Eurolines
Messages postés
108
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
30 avril 2008
0
Merci
salut javascripteur ,

tu voudrais ouvrir un aperçu ?
un aperçu de quoi ...... du fichier html qui pourrait etre activer ?

peutre en mettant une iframe, est changer la source pas la liste !

Cordialement frv!
Commenter la réponse de frvfrvfrvfrv