Liste déroulante select javascript

Fermé
Gariig Messages postés 194 Date d'inscription samedi 5 septembre 2009 Statut Membre Dernière intervention 4 avril 2011 - 30 sept. 2010 à 23:02
 Gariig - 7 oct. 2010 à 12:51
Bonjour,

J ai une lsite déroulante avec les chaines TV.

Je voudrai afficher le programe TV en fonction de la chaine selectionnée.

Problème : quand je selectionne France 3 ou Canal +, c'est TF1 qui est affiché dans le champ de la liste.

Comment puis je faire pour que mon choix soit bien affiché dans le champ ?

Merci
<form method="post" action="">
<select name="select" onChange="this.form.submit();" >
<option value="12">TF1</option>
<option value="12">France2</option>
<option value="12">France3</option>
<option value="15">France 3</option>
<option value="90">Canal +</option>
<option value="17">France 5</option>
<option value="19">M6</option>
</select>
</form>



A voir également:

5 réponses

Bonjour

voici mon code, j' ai essayé de faire 2 méthodes (je sais pas laquelle a des chances de fonctionner ?) merci

<h1>Comment afficher l'option quand on on lance la requete ? - methode 1</h1>

<form method="post" action="">
<select name="select" onChange="this.form.submit();" >
<option value="voirtout">Toutes les chaines</option>
<option value="TF1">TF1</option>
<option value="france2">France2</option>
<option value="france3">France3</option>
</select>
</form>

<h1>Comment afficher l'option quand on on lance la requete ? - methode 2</h1>

<form action="articles.php" name="articles" method="get">
<select name="chaine">

<option value="voirtout" onclick='this.form.submit();'>tous les articles</option>

<option value="TF1" onclick='this.form.submit();'>TF1</option>

<option value="france2" onclick='this.form.submit();'>france2</option>

<option value="france3" onclick='this.form.submit();'>france3</option>

</form>


<?php
switch ($_GET['chaine'])
{
case voirtout:
include("bddconnect.php");
$resultat=mysql_query("SELECT * FROM table WHERE chaine='TF1' OR chaine='france2' OR chaine='france3'");
break;

case TF1:
$resultat = mysql_query("SELECT * FROM table WHERE chaine='TF1'");
break;

case france2:
$resultat = mysql_query("SELECT * FROM table WHERE chaine='france2'");
break;

case france3:
$resultat = mysql_query("SELECT * FROM table WHERE chaine='france3'");
break;
}
?>
1
Ok,
L'utilisation d'un switch ici n'a pas son utilité car les cas correspondent aux requettes SQL.
Si il n'y a pas de problème dans ta bdd ton code pourrai se résumer a cela:

(reprise de la méthode 2)

<?php
include("bddconnect.php");
$chaine = $_GET['chaine']
if ($chaine == "voirtout") {
$resultat=mysql_query("SELECT * FROM table");
} else {
$resultat=mysql_query("SELECT * FROM table WHERE chaine = '$chaine' ");
}
?>

Attention a ton formulaire:

<form action="articles.php" name="articles" method="get">
<select name="chaine" onChange="this.form.submit();">
<option value="voirtout">tous les articles</option>
<option value="TF1">TF1</option>
<option value="france2">france2</option>
<option value="france3">france3</option>
</select>
</form>

Ferme bien ton select avant le formulaire

En relisant il me semble avoir fait une erreur en traitant ton problème, je m'explique:
Tu choisis un champ de la liste déroulante (select) et quand le résultat s'affiche la liste reste toujours sur le premier choix ?
Si c'est le cas il faut mettre dans chacune de tes <option>:

<option value="TF1" <?php if($_GET['chaine'] == "TF1") { ?>selected="selected"<? } ?>>TF1</option>

En espérant que ça marche.
1
Les résultats de ta sélection dépend de tes values dans ton select (je ne serai pas étonné que tu trouve la même chose pour TF1, France2 et France3),
ce n'est pas le formulaire qui pose problème (mise a part les values) mais la gestion des réponses avec ton $_POST['select'].

Si tu ne vois pas d'où ça viens dans cette gestion, link ton code qui génère les résultats.
0
Bonjour

Merci pour ton aide

Voici mon script final en suivant tes conseils :

Il semble qu'il reste une erreur:
Notice: Undefined index: chaine in C:\wamp\www\TEST\articles.php on line 6

Voici le script final :

<h1>Comment lancer des requetes à partir d'une liste déroulante?</h1>


<?php
include("bddconnect.php");
$chaine = $_GET['chaine'];
if ($chaine == "voirtout") {
$resultat=mysql_query("SELECT * FROM table");
} else {
$resultat=mysql_query("SELECT * FROM table WHERE chaine = '$chaine' ");
}
?>


<form action="articles.php" name="articles" method="get">
<select name="chaine" onChange="this.form.submit();">
<option value="voirtout">tous les articles</option>
<option value="TF1">TF1</option>
<option value="france2">france2</option>
<option value="france3">france3</option>
</select>
</form>


<h1>Programme TV</h1>


<table width="390" align="center" border="0" style="border:solid 1px lightblue;" cellspacing="0" cellpadding="0">
<tr>
<th class="espace" style="background:lightblue">Heure</th>
<th class="espace" style="background:lightblue">Film</th>
<th class="espace" style="background:lightblue">Chaine</th>
</tr>
<?php while ($donnees= mysql_fetch_assoc($resultat)) { ?>

<tr>

<td align="center" class="espace6"><?php echo $donnees['heure'];?></td>
<td align="center" class="espace6"><?php echo $donnees['film'];?></td>
<td align="center" class="espace6"><?php echo $donnees['chaine'];?></td>
</tr>
<?php } ?>
</table>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J arrive pas a récupérer la value dans ma requete

et la variable chaine n'est pas définie

<h1>Comment lancer des requetes à partir d'une liste déroulante?</h1>


<form action="articles.php" name="formulaire" method="get">
<select name="chaine" id="chaine" onChange="this.form.submit();">
<option value="voirtout" <?php if($_GET['chaine'] == "toutes les chaines") { ?>selected="selected"<? } ?>>toutes les chaines</option>
<option value="TF1" <?php if($_GET['chaine'] == "TF1") { ?>selected="selected"<? } ?>>TF1</option>
<option value="France2" <?php if($_GET['chaine'] == "France2") { ?>selected="selected"<? } ?>>France2</option>
<option value="France3" <?php if($_GET['chaine'] == "France3") { ?>selected="selected"<? } ?>>France3</option>
</select>
</form>

<?php
include("bddconnect.php");
$chaine = $_GET['chaine'];
if ($chaine == "voirtout") {
$resultat=mysql_query("SELECT * FROM tv");
} else {
$resultat=mysql_query("SELECT * FROM tv WHERE chaine='TF1' ");
}
?>


<h1>Programme TV</h1>


<table width="390" align="center" border="0" style="border:solid 1px lightblue;" cellspacing="0" cellpadding="0">
<tr>
<th class="espace" style="background:lightblue">Heure</th>
<th class="espace" style="background:lightblue">Film</th>
<th class="espace" style="background:lightblue">Chaine</th>
</tr>
<?php while ($donnees= mysql_fetch_assoc($resultat)) { ?>

<tr>

<td align="center" class="espace6"><?php echo $donnees['heure'];?></td>
<td align="center" class="espace6"><?php echo $donnees['film'];?></td>
<td align="center" class="espace6"><?php echo $donnees['chaine'];?></td>
</tr>
<?php } ?>
</table>
0