Liste déroulante select javascript

Gariig Messages postés 199 Statut Membre -  
 Gariig -
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>

5 réponses

  1. Gariig
     
    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
  2. FiBoot
     
    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
  3. FiBoot
     
    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
  4. Gariig
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gariig
     
    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