Partage
  • Partager sur Facebook
  • Partager sur Twitter

liste déroulante

    31 octobre 2008 à 9:56:53

    J'ai trouvé un script tout fait, qui permet d'afficher 2 listes déroulantes liées entre elles. Je veux dire par là, que suivant ce qu'on choisi dans la 1ere liste, dans la seconde les options ne seront pas les mêmes.

    Le problème est que ce script est fait pour fonctionner seul dans un formulaire, sans autres balise <input> avant ou après, car il crée un <form> et le ferme automatiquement.

    Je ne connais pas trop le javascript et au vu de la complexité meme en essayer de modifier à ma sauce je ne parviens pas a résoudre mon problème.

    Voici le script :

    <SCRIPT LANGUAGE="JavaScript">
    
    var menu=new CreerMenu(2,"* Type *","* Numéro *","_blank");
    menu.Add(1,"OI","");
    	menu.Add(2,"1","");
    	menu.Add(2,"2","");
    menu.Add(1,"RLD","");
    	menu.Add(2,"1","");
    menu.Add(1,"IPAQ","");
    	menu.Add(2,"Aucun","");
    function CreerMenu(profondeur,titre1,titre2,target) {
    	this.nb=0;this.prof=profondeur;
    	this.titre1=titre1; this.titre2=titre2; 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><br/>";
    	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 bgcolor="#FFFFFF" text="#FFFFFF" alink="#000066" link="#000066" vlink="#000066" >
    <FONT FACE="Arial" SIZE='-1' COLOR="#000099">
    
    
    <SCRIPT language="JavaScript">
    	menu.Aff();
    </SCRIPT>
    
    • Partager sur Facebook
    • Partager sur Twitter
      31 octobre 2008 à 14:53:53

      Citation : Attonde

      Citation : croky

      Bonjour, svp...


      +1
      http://www.siteduzero.com/recherche-351.html



      Désolé j'était pressé ... bonjour

      J'ai bien regarder, et le problème vient du faite que lorsque j'inclue le fichier ci-dessus dans ma page html, contenant d'autre partie du formulaire, et bien toutmon texte est effacé.

      En gros, toutes les indications avant les champs input text, checkbox, ... disparaissent.
      • Partager sur Facebook
      • Partager sur Twitter
        31 octobre 2008 à 16:06:55

        bonsoir
        voilà un exemple de listes dynamiques
        html
        <form id="formulaire" action=" ">
        <p>
        <select name="boite1" onchange="choix(this.form)">
        <option selected="selected">...........Choisissez une rubrique...........</option>

        <option>foot</option>
        <option>rugby</option>
        <option>basket</option>
        </select>

        <select name="boite2">
        <option selected="selected">...........Choisissez une rubrique...........</option>
        <option></option>
        <option></option>
        <option></option>
        </select>
        </p>
        </form>

        javascript

        function choix(fr)
        {
        var j;
        var i = fr.boite1.selectedIndex;
        if (i == 0)
        for(j = 1; j <3; j++)
        fr.boite2.options[j].text="";


        else{
        switch (i){
        case 1 : var text = new Array( "A","B","C");
        break;
        case 2 : var text = new Array("D","E","F");
        break;

        case 3 : var text = new Array("G","H","I");
        break;
        }

        for(j = 0; j<3; j++)
        fr.boite2.options[j+1].text=text[j];
        }
        fr.boite2.selectedIndex=0;
        }

        • Partager sur Facebook
        • Partager sur Twitter

        liste déroulante

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown