frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008
-
14 janv. 2006 à 00:54
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 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>
A voir également:
Je vous colle avec cette triple liste deroulante , hein !
xdoume
Messages postés34Date d'inscriptionlundi 17 octobre 2005StatutMembreDernière intervention15 octobre 20061 14 janv. 2006 à 19:15
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
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008 15 janv. 2006 à 00:50
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.
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008 16 janv. 2006 à 14:29
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 !
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008 17 janv. 2006 à 23:58
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....
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008 19 janv. 2006 à 01:43
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)
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008 31 janv. 2006 à 22:34
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");
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" ";}return Z}
function Arbo(m) {
var Z= "
";
for (var i =0;i<m.nb;i++) {
Z+=space(m[i].deep)+m[i].txt+" +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)
Eurolines
Messages postés5Date d'inscriptionjeudi 19 janvier 2006StatutMembreDernière intervention 2 février 2006 1 févr. 2006 à 08:19
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 .
frvfrvfrvfrv
Messages postés108Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention30 avril 2008 1 févr. 2006 à 23:39
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.
Eurolines
Messages postés5Date d'inscriptionjeudi 19 janvier 2006StatutMembreDernière intervention 2 février 2006 2 févr. 2006 à 08:40
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."