Problème de listes déroulantes
Posté : 25 août 2005, 14:46
Bonjour,
J'ai pris pour exemple votre code en php sur cette page :
http://www.phpfrance.com/forums/voir_su ... E9roulante
afin de créer mes propres déroulantes.
La 1ère liste fonctionne bien mais la seconde ne s'affiche pas.
Voici mon code :
Merci beaucoup
J'ai pris pour exemple votre code en php sur cette page :
http://www.phpfrance.com/forums/voir_su ... E9roulante
afin de créer mes propres déroulantes.
La 1ère liste fonctionne bien mais la seconde ne s'affiche pas.
Voici mon code :
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "Physique";
/* On récupère si elle existe la valeur du semestre envoyée par le formulaire */
$ids = isset($_POST['Numsem'])?$_POST['Numsem']:null;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un département selon la région choisie</title>
<meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
<meta name="keywords" content="" />
<meta name="author" content="Cyrano" />
<meta name="generator" content="Zend Studio Environnement et WebExpert 5" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Pragma" content="no-cache" />
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
<?php
if(isset($_POST['ok']) && isset($_POST['IdMention']) && $_POST['IdMention'] != "")
{
$sem_selectionne = $_POST['Numsem'];
$ment_selectionne = $_POST['IdMention'];
?>
<p>Vous avez sélectionné la mention <?php echo($ment_selectionne); ?> dans le semestre <?php echo($sem_selectionne); ?></p>
<?php
}
?>
<h3>Trouver une mention</h3>
<?php
/* 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($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$sql1 = "SELECT `Numsem`".
" FROM `semestre`".
" ORDER BY `Numsem`";
$rech_sem = mysql_query($sql1);
$sem = array();
/* On active un compteur pour les semestres */
$nb_sem = 0;
if($rech_sem != false)
{
while($ligne = mysql_fetch_assoc($rech_sem))
{
array_push($sem, $ligne['Numsem']);
/* On incrémente de compteur */
$nb_sem++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgment">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez un semestre</legend>
<select name="semestre" id="semestre" onchange="document.forms['chgment'].submit();">
<option value="-1">- - - Choisissez un semestre - - -</option>
<?php
for($i = 0; $i < $nb_sem; $i++)
{
?>
<option value="<?php echo($sem[$i]); ?>"<?php echo((isset($ids) && $ids == $sem[$i])?" selected=\"selected\"":null); ?>><?php echo($sem[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_sem);
/* On commence par vérifier si on a envoyé un numéro de semestre et le cas échéant s'il est différent de -1 */
if(isset($ids) && $ids != -1)
{
/* Création de la requête pour avoir les mentions de ce semestre */
if ($ids == 'S1' or $ids == 'S2')
{
$sql2 = "SELECT `IdMention`".
" FROM `mention`".
" WHERE `Annee` = '1A' ;";
}
else
if ($ids == 'S3' or $ids == 'S4')
{
$sql2 = "SELECT `IdMention`".
" FROM `mention`".
" WHERE `Annee` = '2A' ;";
}
else
if ($ids == 'S5' or $ids == 'S6')
{
$sql2 = "SELECT `IdMention`".
" FROM `mention`".
" WHERE `Annee` = '3A' ;";
}
if($connexion != false)
{
$rech_ment = mysql_query($sql2, $connexion);
/* Un petit compteur pour les départements */
$nm = 0;
/* On crée deux tableaux pour les numéros et les noms des mentions */
$Id_ment = array();
$nom_ment = array();
/* On va mettre les numéros et noms des mentions dans les deux tableaux */
while($ligne_ment = mysql_fetch_assoc($rech_ment))
{
array_push($Id_ment, $ligne_ment['IdMention']);
array_push($nom_ment, $ligne_ment['NomMention']);
$nm++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="mention" id="mention">
<?php
for($m = 0; $d<$nm; $m++)
{
?>
<option value="<?php echo($Id_ment[$m]); ?>"<?php echo((isset($ment_selectionne) && $ment_selectionne == $Id_ment[$m])?" selected=\"selected\"":null); ?>><?php echo($nom_ment[$m]." (". $Id_ment[$m] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_ment);
}
?>
<br /><input type="submit" name="ok" id="ok" value="Envoyer" />
</fieldset>
</form>
<?php
/* 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... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
</body>
</html>
Savez-vous ce qui se passe ?Merci beaucoup