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 :

resultat liste à partir d'une autre


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Points : 51
    Points
    51
    Par défaut resultat liste à partir d'une autre
    Bonjour à tous,

    je souhaite afficher le contenu d'une liste en fonction de mon choix dans la première.

    Pour la première c'est ok par contre dans la deuxième je n'ai que du noir en fond de liste

    Voila mon code.

    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
     
     
    <?php
    if(isset($_POST['liste1'])){
    	//si la liste a été "postée" c'est à dire choix fait
    	$liste1=$_POST['liste1'];
    }else{
    	$liste1=-1;
    }
    ?>
    <TABLE border=0 width=97% BGCOLOR=#FFFFFF>
    <TR align="center">
    <TD> R&eacute;servation mobile</TD>
    </TR>
    </TABLE>
    <BR><BR>
    Sélectionnez ue marque :
    <form name="form1" method="post" action="">
    <select name="liste1" onchange=" form1.submit();">
    <option value=-1>-- Choisissez -- </option> <!-- il faut cette ligne pour avoir obliagtoirement un changement -->
    <?php
     
    $connection = mysql_connect('localhost', 'root', '');
    $base = mysql_select_db('resa_mobile');
     
    $requete = "SELECT * FROM marques";
    $execution_requete = mysql_query($requete);
    while($total = mysql_fetch_array($execution_requete))
     
    //Liste déroulante
    {
    echo "<option value=\"".$total["nom_marque"]."\"";
    if($liste1==$total['nom_marque']) { echo "selected"; }//ça c'est pour garder la selection lors du réaffichage
    echo ">".$total['nom_marque']."</option>\n";
     
    }
     
    ?>
    </select>
    </form>
     
     
     
     
    <?php
    if($liste1 != -1){ //si on a fait un choix
    //on refait une requette avec une condition
    $requete = "SELECT * FROM modeles WHERE num_marque='".$liste1."'";
    $execution_requete = mysql_query($requete);
     
    // on affiche les valeurs correspondantes au nom selectionné, pas besoin de boucle while, on ne récupère qu'un seul enregistrement
    $total = mysql_fetch_array($execution_requete);
    ?>
     
     
    </form> <!-- la fin du form içi ! -->
    <?php
    } // accolade de fin de if liste p
    ?>
     
    <?php
    if(isset($_POST['liste2'])){
    	//si la liste a été "postée" c'est à dire choix fait
    	$liste2=$_POST['liste2'];
    }else{
    	$liste2=-1;
    }
    ?>
     
    Sélectionnez un modele :
    <form name="form2" method="post" action="">
    <select name="liste2" onchange=" form2.submit();">
    <option value=-1>-- Choisissez -- </option> <!-- il faut cette ligne pour avoir obliagtoirement un changement -->
    <?php
     
    $connection = mysql_connect('localhost', 'root', '');
    $base = mysql_select_db('resa_mobile');
     
    $requete2 = "SELECT * FROM modeles";
    $execution_requete2 = mysql_query($requete2);
    while($total2 = mysql_fetch_array($execution_requete2))
     
    //Liste déroulante
    {
    echo "<option value=\"".$total2["nom_modele"]."\"";
    if($liste2==$total2['nom_modele']) { echo "selected"; }//ça c'est pour garder la selection lors du réaffichage
    echo ">".$total2['nom_modele']."</option>\n";
     
    }
     
    ?>
    </select>
    </form>
    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu es en désordre dans ton code.
    Si tu le présentais proprement tu verrais mieux tes problèmes.

    Entre autre : tu as deux fois la connexion à la base de donnée et deux requêtes interrogeant les modeles pour la deuxième liste.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 108
    Points : 51
    Points
    51
    Par défaut
    Oui c'est un peu le foutoir dans mon code mais je ne suis pas webdev à la base ;-)

    J'ai changé mon système et plutôt que de passer tout dans la même page, je récupère mon résultat dans une autre page pour afficher ma deuxième liste déroulante.

    Donc ma première page où je choisis ma marque*

    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
     
    <html>
    <head>
    <link href="style.css" rel="stylesheet" media="all" type="text/css"> 
    </head>
    <?php
     
    include('connexion.inc');
     
    if(isset($_POST['liste1'])){
    	//si la liste a été "postée" c'est à dire choix fait
    	$liste1=$_POST['liste1'];
    }else{
    	$liste1=-1;
    }
    ?>
    <TABLE border=0 width=97% BGCOLOR=#FFFFFF>
    <TR align="center">
    <TD><h1> R&eacute;servation mobile</h1></TD>
    </TR>
    </TABLE>
    <BR><BR>
    Sélectionnez une marque :
    <form name="form1" method="post" action="modele.php">
    <select name="liste1" onchange=" form1.submit();">
    <option value=-1>-- Choisissez -- </option> <!-- il faut cette ligne pour avoir obliagtoirement un changement -->
    <?php
     
     
    $requete = "SELECT * FROM marques";
    $execution_requete = mysql_query($requete);
    while($total = mysql_fetch_array($execution_requete))
     
    //Liste déroulante
    {
     
    echo "<option value=\"".$total["nom_marque"]."\"";
    echo ">".$total['nom_marque']."</option>\n";
     
     
    }
     
    echo "<input type='hidden' name='num_marque' value=".$execution_requete['num_marque'].">";
    ?>
    </select>
    </form>
     
    </html>
    et la page où je récupère la marque chosis pour avoir accès aux modèles correspondant à cette marque, c'est là que je plante, je récupère bien le nom de ma marque mais je n'arrive pas dans ma liste à afficher les modèles correspondant à cette dernière.

    Je pense avoir bien initialisé ma variable num_marque que je passe en hidden dans mon form, mais lorsque j'essais d'afficher la valeur de ma variable sur la page cible rien n'apparaît comme ci elle était vide.

    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
     
    <html>
    <head>
    <link href="style.css" rel="stylesheet" media="all" type="text/css"> 
    </head>
     
    <?php
     
    include('connexion.inc');
     
    if(isset($_POST['liste1'])){
    	//si la liste a été "postée" c'est à dire choix fait
    	$liste1=$_POST['liste1'];
    }else{
    	$liste1=-1;
    }
     
     
    ?>
    <TABLE border=0 width=97% BGCOLOR=#FFFFFF>
    <TR align="center">
    <TD><h1> R&eacute;servation mobile</h1></TD>
    </TR>
    </TABLE>
    <BR><BR>
    <?php
    echo $_POST['liste1'];
     
    if(isset($_POST['liste2'])){
    	//si la liste a été "postée" c'est à dire choix fait
    	$liste2=$_POST['liste2'];
    }else{
    	$liste2=-1;
    }
    ?>
    <br><br>
    Sélectionnez un modèle :
    <form name="form2" method="post" action="mobile.php">
    <select name="liste2" onchange=" form2.submit();">
    <option value=-1>-- Choisissez -- </option> <!-- il faut cette ligne pour avoir obliagtoirement un changement -->
    <?php
     
     
     
     
     
    $requete2 = mysql_query("SELECT * FROM marques AS m, modeles AS n WHERE m.num_marque = n.num_marque AND m.num_marque= ".$_POST['liste1']."'") OR die (mysql_error());
     
    $execution_requete2 = mysql_query($requete2);
    while($total2 = mysql_fetch_array($execution_requete2))
     
    //Liste déroulante
    {
    echo "<option value=\"".$total2["nom_modele"]."\"";
    echo ">".$total2['nom_modele']."</option>\n";
     
     
    }
     
    ?>
    </select>
    </form>
    <a href="accueil.php">Retour Accueil</a>
     
    </html>
    Et mon retour accueil ne s'affiche pas sur ma page.

    Merci pour votre aide

Discussions similaires

  1. [AC-2010] Alimenter une liste à partir d'une autre
    Par Aziraphal dans le forum IHM
    Réponses: 3
    Dernier message: 23/11/2012, 14h46
  2. Générer une liste à partir d'une autre
    Par caillon99 dans le forum Général Python
    Réponses: 3
    Dernier message: 28/06/2011, 23h08
  3. Réponses: 2
    Dernier message: 27/09/2010, 14h14
  4. Réponses: 8
    Dernier message: 06/08/2008, 15h59

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