5 pi�ce(s) jointe(s)
remplir un select en javascript a partir d'un fichier xml
C'est la premi�re fois que je me sert de ce genre de forum, j'ai vraiment besoin d'aide,soyez indulgent...merci
le programme est cens� remplir un premier select avec les element du fichier "marque.xml" cad renault-fiat-mercedes-citroen.
Quand on choisi renault,il cr�e un fichier renault.xml et l'ouvre, puis passe les �l�ments qui s'y trouve dans le second select.
le probleme se situe � alert("fonction marque") ,si je le d�sactive il passe au dessus de la fonction et ne rempli rien, si je l'active(que j'enl�ve les /* et */) il passe dans la fonction et la rempli, j'ai rajout� un try catch au debut mais �a n'a rien chang�.je vous l'envoi egalement en piece jointe, je ne sais pas trop comment �a fonctionne chez vous. Merci encore de l'aide que vous m'apporterez.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| <html>
<head>
<script type="text/javascript">
function open_file()
{
try {
xmlDoc=new ActiveXObject("Microsoft.XMLDOC");
xmlDoc.async=false;
xmlDoc.load("marque.xml");
} catch (e)
{
try {
xmlDoc=document.implementation.createDocument('','',null);
xmlDoc.load("marque.xml");
} catch (e) {alert("ERREUR");}
}
marque();
}
</script>
<script type="text/javascript">
function marque()
{
try
{
/*alert("fonction marque");*/ /*SI DESACTIVE ("/* ENLEVE DE CHAQ COTE DU ALERT") ALORS CA MARCHE*/
document.getElementById("cb_marque").options.length=0;
MAX=xmlDoc.childNodes[0].childNodes.length;
/*alert(MAX);*/
document.getElementById("cb_marque").options[0]=new Option("",null); /*cible combobox marque et le vide*/
indx=0;
tb_mrq=new Array();
for (i=0;i<MAX;i++)
{
try {
v=xmlDoc.childNodes[0].childNodes[i].getAttribute("id");
indx=indx+1;
/*alert(v+" "+i);*/
document.getElementById("cb_marque").options[indx]=new Option(v,i);
tb_mrq[i]=v;
}
catch(e) { continue;
}
}
/*alert("1 : "+v1+" 2 : "+v2); */
}
catch(e)
{}
}
</script>
<script type="text/javascript">
function getName()
{
var indx_chx=document.getElementById("cb_marque").options.selectedIndex;
var mon_choix=document.getElementById("cb_marque").options[indx_chx].value;
var p=tb_mrq[mon_choix];
/*alert("j'ai choisi : "+p);*/
/*alert("param re�u : "+param);*/
var file_xml=p + ".xml";
/*alert("nom du fichier XML : "+file_xml); */
try {
xmlDoc=new ActiveXObject("Microsoft.XMLDOC");
xmlDoc.async=false;
xmlDoc.load(file_xml);
} catch (e)
{
try {
xmlDoc=document.implementation.createDocument('','',null);
xmlDoc.load(file_xml);
} catch (e) {alert("ERREUR");}
}
modele();
}
</script>
<script type="text/javascript">
function modele()
{
alert("fonction modele");
document.getElementById("cb_modele").options.length=0;
var MAX=xmlDoc.childNodes[0].childNodes.length; /*renault=7 citroen=7*/
/*alert(MAX);*/
document.getElementById("cb_modele").options[0]=new Option("",null); /*cible combobox modele et le vide*/
var indx=0;
for (i=0;i<MAX;i++)
{
try {
v=xmlDoc.childNodes[0].childNodes[i].getAttribute("id");
indx=indx+1;
/*alert(v+" "+i);*/
document.getElementById("cb_modele").options[indx]=new Option(v,i);
}
catch(e) { continue;
}
}
/*alert("1 : "+v1+" 2 : "+v2+" 3 : "+v3);*/
}
</script>
</head>
<body onload="open_file()">
<select id="cb_marque" onchange="getName()"></select>
<select id="cb_modele"></select>
</body>
</html> |