Php probleme liste deroulante
majdoulin
Messages postés
106
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain42 -
Alain42 -
Bonjour tout le monde ,
voila svp j'ai un probleme avec la liste deroulante , je voudrai qu'au choix d'une valeur de la liste deroulante ,que cela m'affiche les informations la concernant ,j'ai le code suivant mais cela n'affiche rien dans ma page :
voila pour le remplissage de la liste :
<form name="form1" method="post" action="resultats.php">
<table width="539" height="40" border="0">
<tr>
<td width="331"> </td>
<td width="198"><label>
<select name="select">
<?php
$req = mysql_query("select date_match from resultats") or die(mysql_error());
while($ligne=mysql_fetch_array($req)){
echo "<option>";
echo $ligne[0];
}
?>
</select>
et ici le code de requetes:
<?php
if (isset($_POST['select'])){
$val=$_POST['select'];
$req1 = mysql_query("select nom_equipe from resultats,equipes where equipes.id_equipes=resultats.id_equipe1 and date_match='$val'");
$req2= mysql_query("select nom_equipe from resultats,equipes where equipes.id_equipes=resultats.id_equipe2 and date_match='$val'");
$req3=mysql_query("select date_match,resultat,commentaire from resultats where date_match='$val'");
while($res=mysql_fetch_array($req1))
{ $nom_equipe1=$res[0];}
while($res=mysql_fetch_array($req2))
{ $nom_equipe2=$res[0];}
while($res=mysql_fetch_array($req3))
{ $date_match=$res[0];
$resultat=$res[1];
$commentaire=$res[2];}
$nbrlignes=mysql_num_rows($req3);
echo "<tr>
<td>$nom_equipe1</td>
<td>$nom_equipe2</td>
<td>$date_match</td>
<td>$resultat</td>
<td>$commentaire</td>
</tr>";
}
?>
voila svp j'ai un probleme avec la liste deroulante , je voudrai qu'au choix d'une valeur de la liste deroulante ,que cela m'affiche les informations la concernant ,j'ai le code suivant mais cela n'affiche rien dans ma page :
voila pour le remplissage de la liste :
<form name="form1" method="post" action="resultats.php">
<table width="539" height="40" border="0">
<tr>
<td width="331"> </td>
<td width="198"><label>
<select name="select">
<?php
$req = mysql_query("select date_match from resultats") or die(mysql_error());
while($ligne=mysql_fetch_array($req)){
echo "<option>";
echo $ligne[0];
}
?>
</select>
et ici le code de requetes:
<?php
if (isset($_POST['select'])){
$val=$_POST['select'];
$req1 = mysql_query("select nom_equipe from resultats,equipes where equipes.id_equipes=resultats.id_equipe1 and date_match='$val'");
$req2= mysql_query("select nom_equipe from resultats,equipes where equipes.id_equipes=resultats.id_equipe2 and date_match='$val'");
$req3=mysql_query("select date_match,resultat,commentaire from resultats where date_match='$val'");
while($res=mysql_fetch_array($req1))
{ $nom_equipe1=$res[0];}
while($res=mysql_fetch_array($req2))
{ $nom_equipe2=$res[0];}
while($res=mysql_fetch_array($req3))
{ $date_match=$res[0];
$resultat=$res[1];
$commentaire=$res[2];}
$nbrlignes=mysql_num_rows($req3);
echo "<tr>
<td>$nom_equipe1</td>
<td>$nom_equipe2</td>
<td>$date_match</td>
<td>$resultat</td>
<td>$commentaire</td>
</tr>";
}
?>
A voir également:
- Php probleme liste deroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
4 réponses
Commence par vérifier le code HTML généré par tout ca : clic droit > code source / afficher la source
sur ta page.
Tu pourra remarquer entre autre qu'il te manque :
- un
apres
- les attributs value pour tes balises options.
De plus, si tes requête $req1,2 et 3 renvois plusieurs résultats, tes variables $nom_equipe1,2, $date_match etc n'auront la valeur que du dernier résultat.
Je te conseille de faire un var_dump($res); dans tes boucles while pour vérifier.
Et un plus gros conseil, protège tes variable POST ! C'est la porte ouverte pour, au minimum une petite suppression de ta bdd ;)
Jette un oeil aux fonctions suivantes :
addslashes(), mysql_real_escape_string(), intval() sur https://www.php.net/
C'est déjà un début, je n'ai fait que survoler ton code.
sur ta page.
Tu pourra remarquer entre autre qu'il te manque :
- un
echo '</option>';
apres
echo "<option>"; echo $ligne[0];
- les attributs value pour tes balises options.
De plus, si tes requête $req1,2 et 3 renvois plusieurs résultats, tes variables $nom_equipe1,2, $date_match etc n'auront la valeur que du dernier résultat.
Je te conseille de faire un var_dump($res); dans tes boucles while pour vérifier.
Et un plus gros conseil, protège tes variable POST ! C'est la porte ouverte pour, au minimum une petite suppression de ta bdd ;)
Jette un oeil aux fonctions suivantes :
addslashes(), mysql_real_escape_string(), intval() sur https://www.php.net/
C'est déjà un début, je n'ai fait que survoler ton code.
Bonjour ,
merci bien xil mais meme en corrigeant ces erreurs cela ne marchent pas, en faite je voudrai juste récuperer la valeur selectionnée dans la liste deroulante et cela ne marche pas ,voici le code :
<form name="form1" method="post" action="resultats.php">
<table width="539" height="40" border="0">
<tr>
<td width="331"> </td>
<td width="198"><label>
<select name="select">
<?php
$req = mysql_query("select date_match from resultats") or die(mysql_error());
while($ligne=mysql_fetch_array($req)){
echo "<option value=\"$ligne[0]\" >$ligne[0]</option>";
}
?>
</select>
</label></td>
</tr>
</table>
<div id="Layer2">
<table width="517" height="41" border="1">
<tr>
<td>date</td>
<td>resultat</td>
<td>commentaire</td>
</tr>
<?php
if (isset($_POST['select'])){
if (!empty($_POST['select'])){
$val=$_POST['select'];
echo($val);
echo("slt");
}}
?>
merci bien xil mais meme en corrigeant ces erreurs cela ne marchent pas, en faite je voudrai juste récuperer la valeur selectionnée dans la liste deroulante et cela ne marche pas ,voici le code :
<form name="form1" method="post" action="resultats.php">
<table width="539" height="40" border="0">
<tr>
<td width="331"> </td>
<td width="198"><label>
<select name="select">
<?php
$req = mysql_query("select date_match from resultats") or die(mysql_error());
while($ligne=mysql_fetch_array($req)){
echo "<option value=\"$ligne[0]\" >$ligne[0]</option>";
}
?>
</select>
</label></td>
</tr>
</table>
<div id="Layer2">
<table width="517" height="41" border="1">
<tr>
<td>date</td>
<td>resultat</td>
<td>commentaire</td>
</tr>
<?php
if (isset($_POST['select'])){
if (!empty($_POST['select'])){
$val=$_POST['select'];
echo($val);
echo("slt");
}}
?>
Ta balise <form> n'est pas fermée, et je ne vois pas de bouton submit. (A moins que le code que tu as copié ne soit pas toute ta page)
Ton select est dans un <label>, je n'en vois pas trop l'intérêt, mais c'est un détail.
Tout ton code est bien dans la page resultats.php ?
"Cela ne marche pas", qu'est ce qui se passe exactement? Page 404 ? Rien qui change ? autre?
Tu as bien ta listebox remplie avec les bonnes valeurs ?
As tu vérifié le code source de ta page pour voir si tes attributs value des balises option sont corrects ?
ajoute un <?php var_dump($_POST); ?> au début de ta page pour t'assurer que le tableau $_POST est bien présent, et que la valeur du select y est.
Si tu ne trouve toujours pas, copie moi ce que te renvoit le var_dump, et une ligne <option> générée (du code source HTML final)
Ton select est dans un <label>, je n'en vois pas trop l'intérêt, mais c'est un détail.
Tout ton code est bien dans la page resultats.php ?
"Cela ne marche pas", qu'est ce qui se passe exactement? Page 404 ? Rien qui change ? autre?
Tu as bien ta listebox remplie avec les bonnes valeurs ?
As tu vérifié le code source de ta page pour voir si tes attributs value des balises option sont corrects ?
ajoute un <?php var_dump($_POST); ?> au début de ta page pour t'assurer que le tableau $_POST est bien présent, et que la valeur du select y est.
Si tu ne trouve toujours pas, copie moi ce que te renvoit le var_dump, et une ligne <option> générée (du code source HTML final)