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 :

[Débutant] liste déroulante + requette [Fait] [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut [Débutant] liste déroulante + requette
    voila , j'ai 2 listes du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form name="myform1" method="post"> 
    <select name="liste"> 
    <? 
    while($donnees1=mysql_fetch_row($result1)) 
    {  
     echo "<option value='".$donnees1[0]."'>".$donnees1[1]; 
    } 
     ?> 
    </select>
    j'aimerais que lorsque je choisisse une des options de cette liste sa me post le "form" et que en dessous ce celle-ci cela affiche les reste des champs de la table correspondant au choix de mon options .
    Je comprend le system , de dire :
    Je choisit une équipes , en fontion de sont "id" jaffiche en bas le résultat de la requette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM femmes WHERE equipes=$option
    $option contenant le nom de mon équipe .

    Mais je n'arrive pas a le mettre en place . :

  2. #2
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut Re: [Débutant] liste déroulante + requette
    salut
    pour poster ton formulaire tu devrais définir ton action (la page de traitement) et avoir un bouton submit...
    sinon pour ce qui est de l'affichage tu pourrais faire comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <select name="liste"> 
    <? 
    while($donnees1=mysql_fetch_row($result1)) 
    {  
     echo "<option value='".$donnees1['id_equipe']."'>".$donnees1['nom_equipe']."</option>; 
    } 
     ?> 
    </select>
    et dans ta requête tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM femmes WHERE equipes=$_POST['liste']

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut Re: [Débutant] liste déroulante + requette
    Citation Envoyé par Amenos
    j'aimerais que lorsque je choisisse une des options de cette liste sa me post le "form" et que en dessous ce celle-ci cela affiche les reste des champs de la table correspondant au choix de mon options .
    Il faut regarder du côté de Javascript, éventuellement Ajax.


    Citation Envoyé par Amenos
    Je choisit une équipes , en fontion de sont "id" jaffiche en bas le résultat de la requette
    Là, pour le coup, il s'agit de PHP.

    Bonne chance.

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    alors , si j'ai bien compris allyson ,
    j'ajoute un bouton valider et sur le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="???" method="post">
    je fait quoi , je redirige sur une page ? Car si oui , sa ne marche plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM femmes WHERE equipes=$_POST['liste']
    Car il ne va pas reconnaitre : liste .

    Et je ne voit pas comment faire que sur le "form action=" sa me redirige sur la meme page .

    ps: Kirkis j'avais penser a js ou ajax , mais je pense que je vait essailer que sa fonctionne de cette facon et apres en js , et si jai le feeling en ajax !

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ah, je croyais que tu voulais valider le formulaire simplement en sélectionnant un truc dans la liste.

    Tu peux donc passer au tutoriel de la section PHP dont je t'ai également donné le lien, tout y est expliqué. Oui, il faut mettre le nom d'un script PHP dans le action="". Tu peux mettre le script lui-même, tout dépend de la vérification que tu fais derrière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    if(!empty($_POST)){
       echo 'Vous avez posté : '.$_POST['var'].'<br />';
    }
     
    ?>
     
    <form method="post" action="<?php echo basename(__FILE__); ?>">
       <input type="text" name="var">
       <input type="submit" value="Envoyer">
    </form>

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    j'ai fait :
    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
     
    <form action="<?$query1 = "SELECT * FROM femmes WHERE equipe=' . $_POST['liste']'"; 
    $donees1 = mysql_query($query1) or die(mysql_error());    
    ?>" method="post">
     
    <select name="liste"> 
    <? 
    while($donnees=mysql_fetch_row($result)) 
    {  
     echo "<option value='".$donnees[0]."'>".$donnees[1];
    } 
     ?> 
       </select> 
       <input type="submit" value="Choisir" />
    </form>
     
    <h3><?php echo stripslashes($donnees1['equipe']); ?></h3>
    <table>
    <tr>
    <td><?php echo stripslashes($donnees1['entr']); ?></td>
    <td><?php echo stripslashes( $donnees1['entre']); ?></td>
    </tr>
    </table>
    visiblement je peut pas traiter le : equipe=' . $_POST['liste']'
    Dans le form ou dans l'action du form ...
    il me met comme message d'erreur : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
    Sur la ligne du $_POST['list'] .

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Il te manque un point pour concaténer ta variable après le ]

    Je te recommande la lecture de cet article (fondamental) sur la sécurité :
    http://thierrylhomme.developpez.com/php/php_secure/
    C'est en particulier cette rubrique qui te concerne :
    http://thierrylhomme.developpez.com/php/php_secure/#bdd

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    ok , j'ai bien compris le system du renseignement du champ avec le "#" .
    je corrigerai cette "faille" plus tard .
    mon but principal est que cela fonctionne .

    je n'est plus le bug sur le post mais la il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     syntax error, unexpected T_STRING in
    sur la ligne qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="<?$query1 = "SELECT * FROM femmes WHERE equipe='".$_POST['liste']."';
                             
    $donees1 = mysql_query($query1) or die(mysql_error()); ?>" method="post">
    je pense que je l'ai mal ecrite ...

    help thx

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    svp je n'ai plus q'un seul bug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    syntax error, unexpected T_STRING in
    sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="<?$query1 = "SELECT * FROM femmes WHERE equipe='".$_POST['liste']."'; 
                              
    $donees1 = mysql_query($query1) or die(mysql_error()); ?>" method="post">
    merci

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Il faut chercher un peu quand même et faire attention à ce qu'on écrit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="<?$query1 = "SELECT * FROM femmes WHERE equipe='".$_POST['liste']."'";
    Il te manque encore un guillemet pour terminer ta requête...

    Et là ça va rien faire, tu exécutes la requête mais sans afficher le résultat

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    ben , apres je me sert de "$donnees1" pour afficher ce que je veut a la suite du form !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <h3><?php echo stripslashes($donnees1['equipe']); ?></h3> 
    <table> 
    <tr> 
    <td><?php echo stripslashes($donnees1['entr']); ?></td> 
    <td><?php echo stripslashes( $donnees1['entre']); ?></td> 
    </tr> 
    </table>
    tout le code :
    [code<form action="<?$query1 = "SELECT * FROM femmes WHERE equipe='".$_POST['liste']."'";
    $donees1 = mysql_query($query1) or die(mysql_error());
    ?>" method="post">

    <select name="liste">
    <?
    while($donnees=mysql_fetch_row($result))
    {
    echo "<option value='".$donnees[0]."'>".$donnees[1];
    }
    ?>
    </select>
    <input type="submit" value="Choisir" />
    </form>

    <h3><?php echo stripslashes($donnees1['equipe']); ?></h3>
    <table>
    <tr>
    <td><?php echo stripslashes($donnees1['entr']); ?></td>
    <td><?php echo stripslashes( $donnees1['entre']); ?></td>
    </tr>
    </table>[/code]

    je ne sai pas si sa va marche , que a la suite de mon post " validation sur le bouton Choisir cela affiche en fonction du choix de ma liste déroulante cela affiche les champ que j'ai decider en dessou ?

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    En français et en formaté ça donne quoi ?

    Mais bon ce code là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="<?$query1 = "SELECT * FROM femmes WHERE equipe='".$_POST['liste']."'"; 
    $donees1 = mysql_query($query1) or die(mysql_error()); 
    ?>" method="post">
    veut rien dire, parce que tu écris rien dans le paramètre action de ton form. Tu fais juste la requête. Fais des essais avant de revenir parce que là tu poses des questions sans trop savoir ce que tu fais j'ai l'impression.

  13. #13
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    je sais très bien ce que je veut faire , mais tu a raison je devrais tester avant tout !

    je posait juste la question pour savoir ci cela etait possible .
    Mais je pense que je me suis mal exprimé .

    Question : peut-on dans le champ "action" du form lui dire que la valeur de la liste déroulante du form agit dans une requette et affiche son résultat en dessou de ce form ci .

  14. #14
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ah d'accord je viens de comprendre.
    Je confirme le code que tu nous mets ne marchera pas.
    Je pense qu'il faut gérer ça avec du Javascript. Tu mets un écouteur sur ta liste déroulante qui recharge la page avec le contenu de la sélection en paramètre, après quand tu charges la page tu regardes si le paramètre est défini et tu fais la requête en conséquence.

    C'est pas facile à expliquer, je te fais un exemple pour le principe :
    1 - Au premier appel, tu as comme URL page.php. Tu fais une requête par défaut (ou rien c'est toi qui voit).
    2 - Quand l'utilisateur sélectionne un item dans la liste déroulante, une fonction JavaScript est appellée. Cette fonction recharge la page en ajoutant le paramètre nécessaire à la requête. Exemple : page.php?sel=1
    3 - Et donc quand tu charges ta page, il te suffit de regarder si le paramètre sel est défini, auquel cas tu peux faire la requête correspondante.

    J'espère que c'est compréhensible .

    PS : Requête.

  15. #15
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    merci , j'ai compris je vais essayer dans ce sens la ça à l'air plus simple .
    je clos ce topic ...

    ps : Requête c'est noté !!

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

Discussions similaires

  1. [débutant] Liste déroulante et apparition de lien
    Par nicekiller dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/03/2009, 17h33
  2. Réponses: 5
    Dernier message: 01/06/2006, 16h18
  3. [Struts débutant] liste déroulante
    Par khokho dans le forum Struts 1
    Réponses: 8
    Dernier message: 19/04/2006, 16h14
  4. [Struts] - débutante - liste déroulante
    Par alexx dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/04/2005, 15h01
  5. [ JSP ][ Débutant ] Liste déroulante + actualisation de page
    Par captainpouet dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/04/2004, 19h51

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