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

SQL Procédural MySQL Discussion :

4 listes déroulantes avec MySQL


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut 4 listes déroulantes avec MySQL
    bonjour,

    j'ai un formulaire avec plusieurs listes déroulantes, par rapoort au choix de la premiere , la deuxieme liste affiche uniquement les données qui correspondent, je sélectionne un choix dans la 2eme, la 3eme liste affiche ce qu"elle doit afficher ...etc.... j'ai en tout 4 listes déroulantes qui reliées sont à MySQL par php,

    je voulais savoir si mon choix doit se porter sur Javascript ou y aurait il une autre méthode plus efficace ?

    Si je garde la javascript, dois je créer d'autre fonctions ou je réutilise la meme ?

    Dans ma page, j'ai actuellement 2 listes déroulantes qqui fonctionne parfaitement,
    Merci pour vos conseils,

    Voici le début de ma page:

    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
    116
    117
    118
    <html>
    <head>
    <title>Document sans titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script language=javascript>
    function modifcombo(){
    document.location.replace("ajout.php?gam=" + document.form1.lib_gam.value );
    document.form1.lib_gam.value = $gam;
    }
    </script>;
    </head>
     
    <body>
     
    <?php
     
    if (isset($_GET['gam'])){
    $gam = $_GET['gam'];
    } else {
    $gam = NULL;
    }
     
    ?>
    <form name="form1" method="post" action="valide.php">
    <table bgcolor="#ffe7c0" border="0">
    <tbody>
    <caption style="font-weight: bold;" valign="top" align="center"><big>Ajout d'un produit<br>
    <br>
    </big></caption>
     
    <tr>
    <td style="text-align: left; font-weight: bold;"><font color="#ff6000"> Gamme :</font></td>
    <td><select name="lib_gam" class="txt16-000000" onChange="javascript : modifcombo()">
    <option value=""></option>
     
     
    <?php
     
     
    $dbhost="localhost";
    $dblogin="xxxxxxx";
    $dbpassword="xxxxxxxx";
    $dbname="xxxxxxx";
     
    mysql_connect($dbhost,$dblogin,$dbpassword);
    mysql_select_db($dbname);
     
    $ma_req = "SELECT * FROM gamme;";
    $res_req = mysql_query($ma_req)
    or die("Selection table \"gamme\" impossible");
     
     
    if (mysql_num_rows($res_req)!=0) {  // résultat non vide
    while ($une_ligne = mysql_fetch_array($res_req)) {
    $id_gam =  $une_ligne["id_gam"];
    $lib_gam = $une_ligne["lib_gam"];
    print "<option value=" . $id_gam;
    if ($id_gam == $gam) {
     
        print " selected";
     
        }
     
        print ">" . $lib_gam ."</option>";
     
        }
     
        }
     
    ?>
     
    </select>
     
    </td>
     
    </tr>
     
    <tr>
     
    <td style="text-align: left; font-weight: bold;"><font color="#ff6000">Famille : </font></td>
     
    <td><select name="lib_niveau1" class="txt16-000000">
     
    <option value=""></option>
     
     
     
    <?php
     
        // Connexion à la base
    $dbhost="localhost";
    $dblogin="xxxxxx";
    $dbpassword="xxxxxxx";
    $dbname="xxxxxxxxx";
     
    mysql_connect($dbhost,$dblogin,$dbpassword);
    mysql_select_db($dbname);
     
     
     
    $ma_req = "SELECT * FROM niveau1 WHERE id_gam = '$gam';";
    $res_req = mysql_query($ma_req)
    or die("Selection table \"niveau1\" impossible");
     
     
    if (mysql_num_rows($res_req)!=0) {  // résultat non vide
    while ($une_ligne = mysql_fetch_array($res_req)) {
    $id_gam = $une_ligne["id_gam"];
    $lib_niveau1 = $une_ligne["lib_niveau1"];
    print "<option value=" . id_gam . ">"  .  $lib_niveau1 .  "</option>";
    }
    }
    ?>
     
     
     
    ............. suite du formulaire

  2. #2
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    J'ai déjà fait un truc dans le genre, j'ai utilisé des redir JS avec des arguments dans les URL...
    En gros à chaque sélection (onchange) je rafraichit la page avec seulement les bonnes infos!
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    est ce que je réutilise la fonction modificombo() ou je dois créer d'autres fonctions java parce qu'il y aura plusieurs paramètres dans l'url ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script language=javascript>
    function modifcombo(){
    document.location.replace("ajoutbis.php?gam=" + document.form1.lib_gam.value );
    document.form1.lib_gam.value = $gam;
    }
    </script>;

  4. #4
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    Je me rappelle plus comment j'ai fait exactement...
    Mais en fait je faisait, en début de page, un test sur des varaible GET (les arguments de ma sélection) et je constuisais une requete SQL avec celles ci...
    par exemple : ajout.php?list1=23&list2=0&list3=0
    puis, une fois le second choix fait : ajout.php?list1=23&list2=3&list3=0

    Et ainsi desuite! :o
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    je teste les GET et ensuite je renvoie vers la liste déroulante approprié ?
    je n'arrive pas trop a cerner ton raisonnement ,

  6. #6
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    tu affiche une premiere fois ta page, avec tes sélections non faites =>listes sur le premier élément...

    Lorque l'utilisateur fait une sélection dans la premiere liste, avec un Onchange sur la liste, tu rafraichis ta page en cour, mais en passant en paramètre GET la sélection de ta liste...ce qui te permet de faire une requete plus aboutie!!!
    Pou savoir si des choix ont été fait, tu fais un isset($_GET['list1']);

    Voilà
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    je laisse tomber pour l'instant, je n'arrive pas a comprendre le truc, je vais chercher un tuto si je trouve

    merci

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

Discussions similaires

  1. Liste déroulante avec mysql et jsp
    Par rane dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 27/05/2009, 18h16
  2. Création d'une liste déroulante avec servlet+jsp+mysql
    Par sarita25 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/05/2009, 19h00
  3. [MySQL] 2 listes déroulantes avec php et mysql
    Par SHERPAE dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/12/2007, 13h04
  4. listes déroulantes avec mysql
    Par SHERPAE dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 19/12/2007, 11h02
  5. liste déroulante avec données mysql
    Par fab44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/02/2005, 19h45

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