Forum-webmaster
Technique - programmation => Javascript / DOM / Ajax => Message commencé par: chelguera le le 23-08-2007 a 20:21:44

Titre: lecture d'un array
Posté par: chelguera le le 23-08-2007 a 20:21:44

bonjour,

voilà j'ai un gros soucis.. et bien qu'avant de poster j'ai cherché donc je m'adresse à vous pour m'aider.

voila, j'ai un fichier ".js" qui contient les donées pays, region, ville sous forme

pays=new Array();
region=new Array();
ville=new Array();

pays[1]=new Array('1','Belgique','2','France');
region[1]=new Array('1','Bruxelles','2','Liège','3','Limbourg');
region[2]=new Array('40','Aquitaine','41','Auvergne');
ville[2]=new Array('1','Ans','2','Verviers);

J'ai limité les données pour pas innonder...... mais c'est énorme !!!

bon ma question, jaimerais peupler une liste deroulante pour les pays qui suivant le pays choisi modifiera la liste des regions qui elle a son tour modifiera la liste des villes...

Avant de poser la question j'ai essayer ceci et ca marche mais j'en ai pour des mois a modifier le fichier d'origine

exemple qui marche :

<html>
<head>
<script language="javascript">
var pays = new Array; //nouveau tableau
pays[0] = new Array("p0", "Belgique");
pays[1] = new Array("p1", "France");
pays[2] = new Array("p2", "Luxembourg");
pays[3] = new Array("p3", "Suisse");

var region=new Array;
region["p0"] = new Array;
region["p0"][0] = new Array("p0v0", "Bruxelles");
region["p0"][1] = new Array("p0v1", "Brabant Wallon");
region["p0"][2] = new Array("p0v2", "Hainaut");
region["p0"][3] = new Array("p0v3", "Namur");
region["p0"][4] = new Array("p0v4", "Liège");
region["p0"][5] = new Array("p0v5", "Luxembourg");
region["p0"][6] = new Array("p0v6", "Anvers");
region["p0"][7] = new Array("p0v7", "Brabant Flamand");
region["p0"][8] = new Array("p0v8", "Flandre Occidentale");
region["p0"][9] = new Array("p0v9", "Flandre Orientale");
region["p0"][10] = new Array("p0v10", "Limbourg");

region["p1"]=new Array;
region["p1"][0] = new Array("p1v0", "Ain");
region["p1"][1] = new Array("p1v1", "Paris");

//pays2
region["p2"] = new Array;
region["p2"][0] = new Array("p2v0", "pays2-region0");
region["p2"][1] = new Array("p2v1", "pays2-region1");


var ville = new Array;
//pays0-region0
ville["p0v0"] = new Array;
//ville["p0v0"][0] = new Array("p0v0r0", "pays0-region0-ville0");
//ville["p0v0"][1] = new Array("p0v0r1", "pays0-region0-ville1");

ville["p0v0"][0]=new Array("p0v0r0","Amay");
ville["p0v0"][1]=new Array("p0v0r1","Amblève");
ville["p0v0"][2]=new Array("p0v0r2","Ans");
ville["p0v0"][3]=new Array("p0v0r3","Anthisnes");
//pays0-region1
ville["p0v1"] = new Array;
ville["p0v1"][0] = new Array("p0v1r0", "pays0-region1-ville0");
ville["p0v1"][1] = new Array("p0v1r1", "pays0-region1-ville1");
ville["p0v1"][2] = new Array("p0v1r2", "pays0-region1-ville2");


//pays1-region0
ville["p1v0"] = new Array;
ville["p1v0"][0] = new Array("p1v0r0", "pays1-region0-ville0");
ville["p1v0"][1] = new Array("p1v0r1", "pays1-region0-ville1");

//pays1-region1
ville["p1v1"] = new Array;
ville["p1v1"][0] = new Array("p1v1r0", "pays1-region1-ville0");
ville["p1v1"][1] = new Array("p1v1r1", "pays1-region1-ville1");


//pays2-region0
ville["p2v0"] = new Array;
ville["p2v0"][0] = new Array("p2v0r0", "pays2-region0-ville0");
ville["p2v0"][1] = new Array("p2v0r1", "pays2-region0-ville1");

//pays1-region1
ville["p2v1"] = new Array;
ville["p2v1"][0] = new Array("p2v1r0", "pays2-region1-ville0");
ville["p2v1"][1] = new Array("p2v1r1", "pays2-region1-ville1");
ville["p2v1"][2] = new Array("p2v1r2", "pays2-region1-ville2");
function filltheselect(liste, choix)
{switch (liste)
{
case "listepays":
raz("listeregion");
raz("listeville");
for (i=0; i<region[choix].length; i++)
{
new_option = new Option(region[choix][1],region[choix][0]);
document.formu.elements["listeregion"].
options[document.formu.elements["listeregion"].length]=new_option;
}
for (i=0; i<ville[choix+"v0"].length; i++)
{
new_option = new Option(ville[choix+"v0"][1],ville[choix+"v0"][0]);
document.formu.elements["listeville"].options[document.formu.
elements["listeville"].length]=new_option;
}
break;
case "listeregion":
raz("listeville");
for (i=0; i<ville[choix].length; i++)
{
new_option = new Option(ville[choix][1],ville[choix][0]);
document.formu.elements["listeville"].options[document.formu.
elements["listeville"].length]=new_option;
}
break;
}
}

function raz(liste)
{l=document.formu.elements[liste].length;
for (i=l; i>=0; i--)
document.formu.elements[liste].options=null;
}
</script>
</head>
<body>
<form name="formu">

Choisir un pays

<select name="listepays" onChange='javascript:filltheselect(this.name, this.value)'>
<script language="javascript">
for (i=0; i<pays.length; i++)
document.write("<option value=\"" +pays[0]+ "\">" +pays[1]);
</script>
</select>
<br>

Choisir une region
<select name="listeregion" onChange='javascript:filltheselect(this.name, this.value)'>
<script language="javascript">
for (i=0; i<region["p0"].length; i++)
document.write("<option value=\"" +region["p0"][0]+ "\">" +region["p0"][1]);
</script>
</select>

<br>

Choisir une ville
<select name="listeville">
<script language="javascript">
for (i=0; i<ville["p0v0"].length; i++)
document.write("<option value=\"" +ville["p0v0"][0]+ "\">" +ville["p0v0"][1]);
</script>
</select>

</form>
</body>
</html>



Merci de vos réponses


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.