trouver l'erreur

trouver l'erreur - PHP - Programmation

Marsh Posté le 07-07-2004 à 15:07:15    

Etant débutante en php, j'ai du mal à faire deux listes déroulantes liées.
La sélection du site dans la première liste à des conséquences sur la deuxième liste, puisque celle ci ne contiendra que les ouvrages qui appartiennent au site sélectionné.
 
Si vous pouvez me corriger le code...se serait cool
Voici le code:
 
 
<?
include("../connexion_base/connexion_administrateur.php3" );
include("../util/affichage_util.php3" );
 
 
connexion();
?>
 
<form method="post" name="site" action="./test.php">
 
site : <select name="numero_site"  onChange="submit(site)">
 
<?
print "<option value=\"\">Sélection d'un site</option>\n";
$requete = mysql_query("SELECT NUMERO_SITE FROM site" );
while ($ligne = mysql_fetch_row($requete))
{
echo "<option>";
echo $ligne[0];
echo "</option>";
echo $ligne[0];
}
?>
 
 
</select>
 
</form>
 
 
<form method="post" name="ouvrage" action="./test.php">
<input type="hidden" name="numero_ouvrage" value="<? echo $numero_site ?>">
 
ouvrage : <select name="numero_ouvrage"  onChange="submit(ouvrage)">
 
<?
if ($HTTP_POST_VARS['numero_site']){
print "<option value=\"\">Sélection d'un ouvrage</option>\n";
}
 
$requete2 = mysql_query("SELECT * FROM ouvrage WHERE NUMERO_SITE = '$numero_site' " );
while ($ligne2 = mysql_fetch_row($requete2))
{
 
 
echo"<option>";
echo $ligne2[0];
echo "</option>";
}
?>
 
</select></form>
 
<input name="send" type="submit" value="Résultat">
 
i de votre aide

Reply

Marsh Posté le 07-07-2004 à 15:07:15   

Reply

Marsh Posté le 07-07-2004 à 15:24:48    

".php3" => tu sais surement que PHP arrive en version 5. Vérifie que les fonctions utilisées dans tes includes ne soient pas dépréciées.
 
$HTTP_POST_VARS['numero_site'] est remplacé par $_POST['numero_site']
 
Le souci ici, c'est que tu affiches la seconde liste déroulante quelque soit la valeur de 'numero_site'. Même si cette valeur est vide, tu effectues une requête. Cela génère surement des erreurs
 
Il faudrait faire  
if (isset($_POST['numero_site']) && !empty($_POST['numero_site'])) {
    //préparer la seconde liste déroulante.
}
 
Une autre solution est de préparer toutes les listes déroulantes et de les afficher en fonction de la sélection dans la première par une fonction JS (onChange() il me semble)
 
 


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed