par
Invité » 19 mai 2009, 15:44
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++;
}
Bonjour , j'ai voulu adapter un exemple que j'ai trouver .
Voici mon code :
[php]<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>
[/php]
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" :
[php]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++;
}[/php]