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

PHP & Base de données Discussion :

remplir une liste déroulante


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Par défaut remplir une liste déroulante
    Bonjour à tous.
    Voilà j'ai créé en PHP une liste déroulante alimentée par une base de donnée MYSQL et maintenant je souhaiterais, à partir de la liste déroulante, afficher une autre liste deroulante alimentee par la base de donne apres afficher toute les informations relatives au choix. Je m'explique : ma liste affiche des categories et je voudrais, après avoir choisi une categorie afficher sur la même page liste deroulante alimente des sous categorie de la categorie que j'ai choisis. aussi je voudrais, après avoir choisi une Sous categorie afficher sur la même page (juste en dessous) toute les informations relatives à cet sous categorie .
    voici le code .j'espere bien que vous me le corriger:

    NB:le tableau d'affichage des sous categories je l'ai pas encore creer





    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    <?php
        require_once("../connexion/connexion.php");
     
        $mot = "";
        if (isset($_POST['searchwordPrd']))
        {
            $mot = $_POST['searchwordPrd'];
        }
    ?>
     
    <form method="post" action="rechercherProduit.php">
        <table class="contentpaneopen">
            <tr>
                <td nowrap="nowrap">
                    <label for="search_searchword">
                        Rechercher des produits :
                    </label>
                </td>
     
                <td nowrap="nowrap">
                    <input type="text" name="searchwordPrd" id="search_searchwordPrd" size="30" maxlength="20" value="<?php echo $mot; ?>" class="inputbox" />
                </td>
     
                <td width="100%" nowrap="nowrap">
                    <button name="Search" onclick="this.form.submit()" class="button">Recherche</button>
                </td>
            </tr>
     
            <tr>
                <td colspan="3">
                    <label for="ordering">
                        Rechercher des produits par categorie:
                    </label>
                    <select name="categorie" id="menucategorie">
                        <?php
                            $resultat=mysql_query("select categorie from Categorie order by categorie") or die ("requète non executé");
                            if (! $resultat) { echo "Erreur requete"; exit;}
                            while ($ligne=mysql_fetch_array($resultat))
                            {
                        ?>
                        <option><?php echo ''.$ligne['categorie'].'';?> </option>
                        <?php
                            }
                            $_GET['cat']=$ligne["categorie"];
                            $cat=$_GET['Cat'];
                            $res2=mysql_query("SELECT SousCategorie.nomSC
                            FROM SousCategorie, Categorie
                            where Categorie.numCat = SousCategorie.numCat
                            and Categorie.categorie =".$cat) or die ("Requête non executée.");
                            if (! $res2) { echo "Erreur requete"; exit;}
     
                            while ($ligne2=mysql_fetch_array($res2))
                            {
                        ?>
                        <option><?php echo ''.$ligne2['nomSC'].'';?> </option>
                        <?php
                            }
                            mysql_close();
                        ?>
                    </select>
                </td>
            </tr>
        </table>
    </form>
     
    <?php
        if (($mot == "")||($mot == "%")) 
        {
            // Si aucun mot clé n'a été saisi,
            // le script demande à l'utilisateur
            // de bien vouloir préciser un mot clé
     
            echo "Veuillez entrer un mot clé s'il vous plaît!<p>";
        }
        else
        {
            $sql = "
                SELECT Produit.libPrd , Societe.raisonSociale ,SousCategorie.nomSC , Categorie.categorie , Marque.marque
                FROM Produit, Societe, SousCategorie, Categorie, Marque
                WHERE Societe.numSociete = Produit.numSociete
                AND SousCategorie.numSC = Produit.numSC
                AND Categorie.numCat = SousCategorie.numCat
                AND Marque.numMarque = Produit.numMarque
                AND ( Produit.libPrd like \"%$mot%\" or Societe.raisonSociale like \"%$mot%\" or SousCategorie.nomSC like \"%$mot%\" or Categorie.categorie like \"%$mot%\" or Marque.marque like \"%$mot%\")
            ";
            $res=mysql_query($sql);
     
            echo mysql_error();
            if(mysql_num_rows($res) >= 1)
            {
                echo"<table border=2>";
                echo"<tr>";
                echo"<td>produit</td>";
                echo"<td>societe</td>";
                echo"<td>Sous Categorie</td>";
                echo"<td>Categorie</td>";
                echo"<td>marque</td>";
                echo"</tr>";
                echo"<tr>";
     
                while($m=mysql_fetch_array($res))
                {
                    echo "<tr>","<td>",$m[0],"</td>","<td>",$m[1],"</td>","<td>",$m[2],"</td>","<td>",$m[3],"</td>","<td>",$m[4],"<td>","</tr>","<br>";
                }
                //mysql_query($req,$c);
                mysql_close();
                echo"</tr>";
                echo"</table>";
            }
            else
            {
                echo "0 Resultat";
            }
        }
    ?>

  2. #2
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut Ajax or not?
    Bonjour,

    Dans un premier temps, mets en place la page (ou le code si tu veux) qui va afficher cette liste de sous-catégorie à partir de la catégorie passée en paramètre.

    Ensuite, il faut trouver un moyen de le mettre en œuvre via ajax (jquery) dont la documentation pullule sur ce site.

    Ce serait mieux si tu essayes et que ce n'est pas aux autres faire la totalité du travail, je pense que ce n'est pas très ... catholique ;-)

    Et une dernière chose, il y a la balise [CODE] qui permet de mieux formater les codes pour une aisance de lecture.

    Désolé mais je ne dis pas tout ceci pour te froisser mais c'est pour mieux nous nous entraider.

    Bien cordialement,

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Par défaut
    merci infiniment ,je debute en php c'est pour ca que je demande de l'aide

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    1-Tes options n'ont pas d'attribut value.
    2- Soit tu submites ton formulaire dans le onchange de ton select; soit tu utilises AJAX, le tutoriel Listes liées.

    A+.

  5. #5
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonjour,

    Voici un code à adapter selon tes besoins
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    <?php
        if (!isset($_POST['liste']))
        {
    ?>
    <html>
        <head>
            <title>Liste li&eacute;e</title>
            <script src="jquery.js" type="text/javascript"></script>
            <script type="text/javascript">
                $(document).ready(function(){
                    //mise en place liste1
                    $.ajax({
                        url: "liste_liee.php",
                        data: "liste=-1",
                        type: "POST",
                        success: function(resp){
                            $('div#liste1').html(resp);
                            $('div#liste1 select').unbind().bind('change',function(){
                                $(this).blur();
                                var id = $(this).val();
                                $.ajax({
                                    url: "liste_liee.php",
                                    data: "liste="+id,
                                    type: "POST",
                                    success: function(resp){
                                        $('div#liste2').html(resp);
                                    },
                                    error: function(){
                                        alert('error');
                                    }
                                });
                            });
                        },
                        error: function(){
                            alert('error');
                        }
                    });
                });
            </script>
        </head>
        <body>
            <div id="liste1" style="float:left;">
            </div>
            <div id="liste2">
            </div>
        </body>
    </html>
    <?php
        }
        else
        {
            $link = mysql_connect('localhost','root','mysql') or die(mysql_error());
            mysql_select_db('edg',$link) or die(mysql_error());
            if ($_POST['liste'] == -1)
            {
                $sql = "
                    SELECT id, content
                    FROM liste1
                    WHERE id_parent = 0
                ";
            }
            else
            {
                $sql = "
                    SELECT id, content
                    FROM liste1
                    WHERE id_parent = '".$_POST['liste']."'
                    AND id_parent != 0
                ";
            }
            $qry = mysql_query($sql,$link) or die(mysql_error());
    ?>
            <select name="selection<?php echo $_POST['liste']; ?>" size="4" style="width:100px;">
    <?php
            while ($row = mysql_fetch_assoc($qry))
            {
    ?>
                <option value="<?php echo $row['id']; ?>"><?php echo $row['content']; ?></option>
    <?php
            }
    ?>
            </select>
    <?php
        }
    /*
    VOICI LE SQL A AJOUTER DANS LA BASE
    IL NE FAUT PAS NON PLUS MODIFIER
    - LES PARAMETRES D'ACCES A LA BDD
    - LE CHEMIN DE JQUERY src="jquery.js
    
    DROP TABLE IF EXISTS `liste1`;
    CREATE TABLE IF NOT EXISTS `liste1` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `content` varchar(32) NOT NULL,
      `id_parent` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
    
    --
    -- Contenu de la table `liste1`
    --
    
    INSERT INTO `liste1` (`id`, `content`, `id_parent`) VALUES
    (1, 'A', 0),
    (2, 'B', 0),
    (3, 'C', 0),
    (4, 'A1', 1),
    (5, 'B1', 1),
    (6, 'A2', 2),
    (7, 'A3', 3),
    (8, 'B3', 3),
    (9, 'C3', 3),
    (10, 'D3', 3);
    */
    ?>
    En espérant de t'avoir aidé.

    Bien cordialement,

Discussions similaires

  1. remplir une liste déroulante
    Par mademoizel dans le forum ASP
    Réponses: 19
    Dernier message: 08/03/2007, 16h33
  2. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 15h26
  3. Réponses: 12
    Dernier message: 28/11/2006, 15h34
  4. Remplir une liste déroulante à partir d'un champ dans une pop up
    Par wiam26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 16h42
  5. [débutant] Remplir une liste déroulante
    Par Floch dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/05/2006, 13h39

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