J'avais besoin d'une liste déroulante liée (2 listes) j'ai donc utilisé le tuto de votre site (http://www.phpfrance.com/forums/voir_sujet-4562.php) et je l'ai modifier avec les élements que je connaissait en php pour réaliser une liste déroulante. Ma page fonctionne bien, sauf pour un élémént.
Le probleme ce situe au niveau de la premiere liste déroulante, lorsque je selectionne la liste que je veut, cela raffraichi correctement la page et cela m'ouvre ma deuxieme liste mais au niveau de la premiere cela est retourner sur la valeur 1(- - - Choisissez une gamme - - -) et si je met" selected=\"selected\"" la premiere liste retourne le dernier nom de la liste déroulante (dans mon cas traiteur).
Mais au niveau des informations récuperer se sont les bon.
SI je selectionne dans ma premier liste boulangerie, meme qu'apres le rechargement de la page il est marqué traiteur ou - - - Choisissez une gamme - - - cela prend bien la valeur voulu dans mon cas B.
Code : Tout sélectionner
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$server="******";
$user="***";
$pass="********";
$db="pdr";
/* On récupère si elle existe la valeur de la gamme envoyée par le formulaire */
$gamme = isset($_POST['gamme'])?$_POST['gamme']:null;
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">';
echo '<head>';
echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />';
if(isset($_POST['ok']) && isset($_POST['gamme']) && $_POST['gamme'] != "")
{
$sgamme_selectionnee = $_POST['sgamme'];
$gamme_selectionne = $_POST['gamme'];
echo "<p>Vous avez sélectionné la gamme $gamme_selectionne et la sous gamme $sgamme_selectionnee</p>";
}
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($server, $user, $pass);
if($connexion != false)
{
$choixbase = mysql_select_db($db, $connexion);
$sql1 = "SELECT id_gamme, ref_gamme, nom_gamme FROM gamme ORDER BY id_gamme";
$query = mysql_query($sql1);
$nb= mysql_num_rows($query);
//recupere le nombre de ligne de la variable contenue dans la variable query. Impeccable
if ($nb == null){
// si le nombre de ligne est egal a ensemble vide cela ecrit dans la list deroulante selectionner
echo "Pas de gamme.";
} else {
//echo "<form action='formulaire' method='post' id='chgsgamme'>"; ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgsgamme">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez la gamme</legend>
<select name="gamme" id="gamme" onchange="document.forms['chgsgamme'].submit();">
<option value="-1">- - - Choisissez une gamme - - -</option>
<?php
//echo "<select name='ref_gamme' id='ref_gamme' onchange='document.forms['chgsgamme'].submit();'>";
//echo "<option value='-1'>- - - Choisissez une gamme - - -</option>";
while ( $list = mysql_fetch_array( $query ) ) {
echo '<option value="'.$list["ref_gamme"].'" selected=\"selected\""">'.$list["ref_gamme"].' '.$list['nom_gamme'].'</option>';
}
}
echo "</SELECT>";
mysql_free_result($query);
//on ferme la liste-->
$region = $_POST['gamme'];
print("<center>$region</center>");
if(isset($gamme) && $gamme != -1)
{
//print("<center> selection $gamme</center>");
// Cération de la requête pour avoir les sous gammes de cette gamme
$sql2 = "SELECT id_sgamme, ref_sgamme,nom_sgamme, ref_gamme FROM sgamme WHERE ref_gamme = '$gamme' ORDER BY id_sgamme";
//echo $sql2;
if($connexion != false)
{
$query2 = mysql_query($sql2) or die('erreur');
$nb2= mysql_num_rows($query2);
//recupere le nombre de ligne de la variable contenue dans la variable query. Impeccable
if ($nb2 == null){
// si le nombre de ligne est egal a ensemble vide cela ecrit dans la list deroulante selectionner
echo "Pas de sous gamme.";
} else {
echo '<select name="sgamme" id="sgamme">';
//echo "<select name='region' id='region' onchange='document.forms['chgsgamme'].submit();'>";
//echo "<SELECT NAME='sgammechoisis'>";
while ( $list2 = mysql_fetch_array( $query2 ) ) {
echo '<option value="'.$list2["ref_sgamme"].'">'.$list2["ref_sgamme"].' '.$list2['nom_sgamme'].'</option>';
}
}
echo "</SELECT>";
//on ferme la liste-->
}
/* Un petit coup de balai */
mysql_free_result($query2);
}
echo '<br /><input type="submit" name="ok" id="ok" value="Envoyer" />';
// Terminé, on ferme la connexion */
mysql_close($connexion);
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
echo '<p>Un incident s\'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>';
}
?>
</body>
</html>
Ou bien est impossible de réaliser ce que je demande avec les modifications que j'ai effectuée?
Merci d'avance pour vos réponses
guigui69