IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

un filtre sur liste deroulante


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Points : 22
    Points
    22
    Par défaut un filtre sur liste deroulante
    bonjour
    j'ai une liste deroulante alimenter depuis une base de donnée
    et a coté j'ai une requete qui me permet de selectionné la table produit et afficher tout les produit dans un tableau dynamique
    j'aimerai affecter un filtre dans la liste deroulante qui contient les nom de famille,par exemple si je click sur famille1, le tableau sera reliée a la liste et il m'affiche seulement les nom qui appartient a la famille1
    voila mon code de liste deroulante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <select style="left:inherit"  name="selectfamille" onchange="javascript : modifcombo()">
                <option value=""></option>
     
           // Execution requête
         $ma_req = "SELECT * FROM famille;";
         $res_req = mysql_query($ma_req)
         or die("Selection table \"famille\" impossible");
     
         // Affectation des variables utilisées pour l'affichage
         if (mysql_num_rows($res_req)!=0) {  // résultat non vide
             while ($une_ligne = mysql_fetch_array($res_req)) {
                          $idfamille =  $une_ligne["idfamille"];
                          $nomfamille = $une_ligne["nomfamille"];
             print "<option value=" . $idfamille;
             if ($idfamille == $famille) {
               print " selected";
             }
             print ">" . $nomfamille ." </option>";
         }
         }
         ?>
              </select>

    et ici c'est la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM produit ORDER BY nomfamille ";
    je sais pas comment relier les deux aidez moi

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Essayes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <form name="form" method="get" action="lenomdetapage.php">
    <select style="left:inherit"  name="selectfamille" onchange="this.form.submit();">
                <option value=""></option>
    <?php 
           // Execution requête
         $ma_req = "SELECT * FROM famille;";
         $res_req = mysql_query($ma_req)
         or die("Selection table \"famille\" impossible");
     
         // Affectation des variables utilisées pour l'affichage
         if (mysql_num_rows($res_req)!=0) {  // résultat non vide
             while ($une_ligne = mysql_fetch_array($res_req)) {
                          $idfamille =  $une_ligne["idfamille"];
                          $nomfamille = $une_ligne["nomfamille"];
             print "<option value=" . $idfamille;
             if ($idfamille == $famille) {
               print " selected";
             }
             print ">" . $nomfamille ." </option>";
         }
         }
    ?>
    </select>
    </form>
    <?php if (isset($_GET['selectfamille'])) { ?>
    <form id="form1" name="form1" method="post" action="">
    <?php
    $idfamille = $_GET['selectfamille'];
    $sql = "SELECT * FROM produit WHERE idfamille='".$idfamille."' ORDER BY nomfamille ";
    $res_sql = mysql_query($sql) or die("Le message que tu veux");
     
    while ($data = mysql_fetch_array($res_sql)) {
    echo '<div>'.$date['nomfamille'].'</div>' ;
    }
    ?>
    </form>
    <?php } ?>

  3. #3
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Tu as aussi la possibilité d'utiliser l'AJAX (sans rafraichissement de ta page)
    http://siddh.developpez.com/articles/ajax/

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    bonsoir
    <?php
    if (isset($_GET['nomfamille'])){
    $nomfamille = $_GET['nomfamille'];
    $sql = "SELECT * FROM produit WHERE idfamille='".$_GET ['nomfamille']."' ORDER BY nomfamille ";
    } else {
    $nomfamille = NULL;
    $sql = "SELECT * FROM produit ORDER BY reference";
    }
    comme le teste le montre le nom de famille (nomfamille) est retourné par un get .
    En fonction de ce choix .
    $requete = mysql_query( $sql) ;
    while( $result = mysql_fetch_array( $requete ) )// ici my sql affiche le message classique:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

    {

    affichage des résultats
    }
    c'est sympa de m'eclaircir la chose car pour moi le code est logique
    merci

  5. #5
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Remplaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while( $result = mysql_fetch_array( $requete ) )
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while ($result = mysql_fetch_assoc($requete))

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    toujour la meme chose la meme erreur je suis etonné

  7. #7
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Essayes avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <?php
    $hostname = "localhost";
    $database = "magasin";
    $username = "root";
    $password = "";
    $CnxMagasin = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); 
     
    if ((isset($_GET['nomfamille'])) && ($_GET['nomfamille'] <> "")) {
    $nomfamille = $_GET['nomfamille'];
    mysql_select_db($database, $CnxMagasin);
    $query_Sql = "SELECT * FROM produit WHERE idfamille='$nomfamille' ORDER BY nomfamille";
    $Sql = mysql_query($query_Sql, $CnxMagasin) or die(mysql_error());
    $row_Sql = mysql_fetch_assoc($Sql);
    } else {
    mysql_select_db($database, $CnxMagasin);
    $query_Sql = "SELECT * FROM produit ORDER BY reference";
    $Sql = mysql_query($query_Sql, $CnxMagasin) or die(mysql_error());
    $row_Sql = mysql_fetch_assoc($Sql);
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Test</title>
    </head>
    <body>
    <?php do { ?>
      <table width="600">
        <tr>
          <td><?php echo $row_Sql['idfamille']; ?></td>
          <td><?php echo $row_Sql['nomfamille']; ?></td>
          <td><?php echo $row_Sql['reference']; ?></td>
        </tr>
          </table>
    <?php } while ($row_Sql = mysql_fetch_assoc($Sql)); ?>
    </body>
    </html>

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    merci beaucoup pour tes reponse le probleme est resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. filtre par liste deroulante
    Par Flo4594 dans le forum IHM
    Réponses: 2
    Dernier message: 08/12/2006, 08h51
  2. filtre sur liste modifiable.Help!!!
    Par VBBBA dans le forum Access
    Réponses: 7
    Dernier message: 18/09/2006, 15h15
  3. action sur liste deroulante
    Par mikebranque dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/06/2006, 19h46
  4. Filtre sur liste
    Par Gabrieel dans le forum Access
    Réponses: 5
    Dernier message: 23/05/2006, 02h46
  5. Réponses: 2
    Dernier message: 26/10/2005, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo