par
bobivienla » 07 janv. 2006, 10:50
j'ai donc remplacer des apostrophes par des guillements, mais lorsque j'affiche la page, il n'y a que deux listes déroulantes avec les 2 memes valeurs dedans, lorsque je fai un choix sur la 1er liste, il m'affiche 3 listes : les 2 premieres sont vides et la 3eme avec les 2 memes valeurs dedans, c'est un peu le bordel
merci pour tes conseils
<html>
<body>
<form action="test.php" method="post">
<fieldset>
<legend></legend>
<?php
$dbhost="localhost";
$dblogin="root";
$dbpassword="bz2cad";
$dbname="gammes";
mysql_connect($dbhost,$dblogin,$dbpassword);
mysql_select_db($dbname);
// Execution requête
$ma_req = "SELECT id_gam FROM gamme";
echo $ma_req;
$res_req = mysql_query ($ma_req);
$liste_gam = mysql_fetch_array($res_req);
// récupération des pays dans la BDD ou dans un fichier
// création de la liste des pays
$select1 = '<select name="id_gam" onchange="this.form.submit()">';
foreach ($liste_gam as $id_gam) {
if (isset($_REQUEST["id_gam"]) && $_REQUEST["id_gam"])
$select1 .= "option value=\"". $id_gam ."\" selected=\"selected\">" . $id_gam . "</option>";
else $select1 .= "<option value=\"" . $id_gam . "\">" . $id_gam . "</option>";
}
$select1 .= '</select>';
echo $select1;
// création de la liste des régions, si un pays a été sélectionné
if (isset($_REQUEST["id_gam"]) && $_REQUEST["id_gam"]) {
// récupération des régions dans la BDD ou dans un fichier
$ma_req2 = "SELECT id_niveau1 FROM niveau1 WHERE id_gam = \"$id_gam\"";
$res_req2 = mysql_query ($ma_req2);
$liste_niveau1 = mysql_fetch_array($res_req2);
if ($liste_niveau1) {
// création de la liste des régions
$select2 = '<select name="id_niveau1" onchange="this.form.submit()">';
foreach ($liste_niveau1 as $id_niveau1) {
if (isset($_REQUEST["id_niveau1"]) && $_REQUEST["id_niveau1"])
$select2 .= "<option value=\"" . $id_niveau1 . "\" selected=\"selected\">" . $id_niveau1 . "</option>";
else $select2 .= "<option value=\"" . $id_niveau1 . "\">" . $id_niveau1 . "</option>";
}
$select2 .= '</select>';
}
else $select2 = '';
}
else $select2 = '';
// création de la liste des villes, si une région a été sélectionnée
if (isset($_REQUEST["id_niveau1"]) && $_REQUEST["id_niveau1"]) {
// récupération des villes dans la BDD ou dans un fichier en fonction de la région
$ma_req3 = "SELECT id_niveau2 FROM niveau2 WHERE id_niveau1 = \"$id_niveau1\"";
$res_req3 = mysql_query ($ma_req3);
$liste_niveau2 = mysql_fetch_array($res_req3);
// création de la liste des localités
if ($liste_niveau2) {
$select3 = '<select name="id_niveau2">';
foreach ($liste_niveau2 as $id_niveau2) {
$select3 = "<option value=\"" . $id_niveau2 . "\">" . $id_niveau2 . "</option>";
}
$select3 .= '</select>';
}
else $select3 = '';
}
else $select3 = '';
echo $select1;
echo $select2;
echo $select3;
?>
</fieldset>
</form>
</body>
</html>
j'ai donc remplacer des apostrophes par des guillements, mais lorsque j'affiche la page, il n'y a que deux listes déroulantes avec les 2 memes valeurs dedans, lorsque je fai un choix sur la 1er liste, il m'affiche 3 listes : les 2 premieres sont vides et la 3eme avec les 2 memes valeurs dedans, c'est un peu le bordel
merci pour tes conseils
[php]<html>
<body>
<form action="test.php" method="post">
<fieldset>
<legend></legend>
<?php
$dbhost="localhost";
$dblogin="root";
$dbpassword="bz2cad";
$dbname="gammes";
mysql_connect($dbhost,$dblogin,$dbpassword);
mysql_select_db($dbname);
// Execution requête
$ma_req = "SELECT id_gam FROM gamme";
echo $ma_req;
$res_req = mysql_query ($ma_req);
$liste_gam = mysql_fetch_array($res_req);
// récupération des pays dans la BDD ou dans un fichier
// création de la liste des pays
$select1 = '<select name="id_gam" onchange="this.form.submit()">';
foreach ($liste_gam as $id_gam) {
if (isset($_REQUEST["id_gam"]) && $_REQUEST["id_gam"])
$select1 .= "option value=\"". $id_gam ."\" selected=\"selected\">" . $id_gam . "</option>";
else $select1 .= "<option value=\"" . $id_gam . "\">" . $id_gam . "</option>";
}
$select1 .= '</select>';
echo $select1;
// création de la liste des régions, si un pays a été sélectionné
if (isset($_REQUEST["id_gam"]) && $_REQUEST["id_gam"]) {
// récupération des régions dans la BDD ou dans un fichier
$ma_req2 = "SELECT id_niveau1 FROM niveau1 WHERE id_gam = \"$id_gam\"";
$res_req2 = mysql_query ($ma_req2);
$liste_niveau1 = mysql_fetch_array($res_req2);
if ($liste_niveau1) {
// création de la liste des régions
$select2 = '<select name="id_niveau1" onchange="this.form.submit()">';
foreach ($liste_niveau1 as $id_niveau1) {
if (isset($_REQUEST["id_niveau1"]) && $_REQUEST["id_niveau1"])
$select2 .= "<option value=\"" . $id_niveau1 . "\" selected=\"selected\">" . $id_niveau1 . "</option>";
else $select2 .= "<option value=\"" . $id_niveau1 . "\">" . $id_niveau1 . "</option>";
}
$select2 .= '</select>';
}
else $select2 = '';
}
else $select2 = '';
// création de la liste des villes, si une région a été sélectionnée
if (isset($_REQUEST["id_niveau1"]) && $_REQUEST["id_niveau1"]) {
// récupération des villes dans la BDD ou dans un fichier en fonction de la région
$ma_req3 = "SELECT id_niveau2 FROM niveau2 WHERE id_niveau1 = \"$id_niveau1\"";
$res_req3 = mysql_query ($ma_req3);
$liste_niveau2 = mysql_fetch_array($res_req3);
// création de la liste des localités
if ($liste_niveau2) {
$select3 = '<select name="id_niveau2">';
foreach ($liste_niveau2 as $id_niveau2) {
$select3 = "<option value=\"" . $id_niveau2 . "\">" . $id_niveau2 . "</option>";
}
$select3 .= '</select>';
}
else $select3 = '';
}
else $select3 = '';
echo $select1;
echo $select2;
echo $select3;
?>
</fieldset>
</form>
</body>
</html>[/php]