Page 1 sur 1

Liste liées

Posté : 19 mai 2009, 15:44
par Invité
Bonjour , j'ai voulu adapter un exemple que j'ai trouver .
Voici mon code :
<html>
	<head>
	</head>
	<body>
	
	<?php 
	// Connection a la bdd
	// Selection de la bdd dans laquel on travail
	?>

	<script type="text/javascript" language="javascript">	
		var Dep = new Array;	
		var ville=new Array;
		
		<?
		$sql = "SELECT * FROM Dep";
		// Envoi de la requete 
		$result = mysql_query($sql);
		
		$j = 0;	
		
		//on recupere dans les tableaux les dep et les villes
		while( $rows = mysql_fetch_array($result))
			{
			@$departement	= $rows ['departement'] ;
			@$Numero	= $rows ['Numero'] ;
			?>
				Dep["<?echo $j ;?>"] = new Array("<?echo $Numero ;?>", "<?echo $departement ;?>");
			<?
					
				//Nouvelles villes
				$sql2 = "SELECT ville FROM Com WHERE Numero = '$Numero' ";
				// Envoi de la requete 
				$result2 = mysql_query($sql2);
				
				$i = 0;
				while($rows2 = mysql_fetch_array($result2))
				{
					@$communes	= $rows2 ['communes'] ;
					?> 
						ville[<?echo $j ;?>] = new Array;
						ville[<?echo $j ;?>][<?echo $i ;?>]=new Array("<?echo $Numero ;?>", "<?echo $communes ;?>");
					<?
					$i++;
				}
				$j ++;
		}
		?>
			
		function filltheselect(liste, choix)
		{
			switch (liste)
			{
				case "listedep":
				    raz("listeville");
				    alert ("sa marche");			     		     
				    for (i=0; i<ville[choix].length; i++)
				    {
				    	new_option = new Option(ville[choix][i][1],ville[choix][i][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[i]=null;
		}
		
	</script>
		<form name="formu">
			Choisir un departement
			<select name="listedep" onChange='filltheselect(this.name, this.value)'>

			  <script language="javascript">			  	
			  		for (i=0; i<Dep.length; i++)
			   		{
			   			document.write("<option value=\"" +Dep[i][0]+ "\">" +Dep[i][1]);	
			   		}
			   		alert("Dep marche");
			  </script>
			</select>
		
			Choisir une ville
			<select name="listeville">
			  	<script language="javascript">
  					for (i=0; i<ville[0].length; i++)
      				{
      					document.write("<option value=\"" +ville[0][i][0]+ "\">" +ville[0][i][1]);	
      				}
			   		alert("Ville marche");
			  </script>
			</select>
		
			
		</form>
	</body>

</html>

Le but est de lier mes 2 listes (remplies avec une BDD) ... Le problème est que la première marche bien mais la deuxième non.

Le problème vient surement lors du "remplissage" de mon tableau "ville" :
while($rows2 = mysql_fetch_array($result2))
				{
					@$communes	= $rows2 ['communes'] ;
					?> 
						ville[<?echo $j ;?>] = new Array;
						ville[<?echo $j ;?>][<?echo $i ;?>]=new Array("<?echo $Numero ;?>", "<?echo $communes ;?>");
					<?
					$i++;
				}