IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

remplir un select en javascript a partir d'un fichier xml


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 2
    Points
    2
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir plusieurs tableaux à partir d'un fichier XML
    Par MarsVolta dans le forum VBA Word
    Réponses: 2
    Dernier message: 15/05/2016, 20h52
  2. remplir ma checkedlistbox à partir d'un fichier XML
    Par sinaps1618 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/10/2009, 06h33
  3. Réponses: 2
    Dernier message: 15/06/2009, 08h59
  4. remplir tableau dans une page JSP à partir d'un fichier texte
    Par ramzouni dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2009, 20h44
  5. Comment remplir un bean a partir d'un fichier xml
    Par NewSer dans le forum Persistance des données
    Réponses: 2
    Dernier message: 02/02/2007, 13h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo