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 :

impossible de recuperer une valeur d'une liste deroulante


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut impossible de recuperer une valeur d'une liste deroulante
    Bonjour a toutes et a tous.

    Je préviens qu'il est inutile de me demander d'aller chercher sur le net ou sur votre forum j'ai tout essayer rien n'y fait.

    Alors voila mon problème :

    j'ai créer une liste déroulante dynamique dans ma page php qui se rempli a l'aide d'une requête sql et je cherche désespérément quelque chose pour récupérer la valeur de se qui aura été choisie par l'utilisateur.
    J'ai essayé les $_POST, $_GET, même du javascript mais en vain.

    Voici 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
    <?php
    $reponse = mysql_query("SELECT * FROM Nom_de_ma_table" );
    echo'<select name="url">';
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <option value="<?php $donnees['fichier'] ?>"><?php echo $donnees['type'];?></option>
    <?php
    }
    $url = $_GET['url']; ou $_POST['url'] /* resultat identique de toute manière */
    echo'</select>'; 
    echo "<a href='".$url."' id='lien'>Lien de téléchargement</a>";
    ?>
    j'espere avoir été assez claire sur mon problème si ce n'est pas le cas faites le moi savoir je reformulerai ça avec grand plaisir =)

    PS : Ca fait deux jour que je cherche un peu partout sur le net alors imaginez mon désespoir ^^

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    je cherche désespérément quelque chose pour récupérer la valeur de se qui aura été choisie par l'utilisateur
    Relis bien cette phrase... tu devrais comprendre que c'est impossible ! Aucun langage de programmation n'est capable de connaitre l'avenir.

    PHP s'exécute côté serveur. Lorsqu'il a fini son traitement, il envoie du HTML généré au navigateur et son contexte disparait à ce moment (donc avant tout affichage chez l'utilisateur et avant toute possibilité d'action de celui-ci).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Je ne peux donc pas afficher quelque chose en fonction de se qu'il aura choisi dans la liste sachant que je connais les résultats possibles.

    Dans mon cas l'utilisateur choisi une machine (imprimante) et en fonction de la machine choisie, j'affiche un lien de téléchargement pour le clone de cette même machine.

    Edit : le lien pour le téléchargement se trouve dans la même table de la machine sous cette forme :

    id - type - url

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il y a plusieurs possibilités pour le faire.

    De façon "classique", l'utilisateur choisi un résultat puis soumet le formulaire, de ton côté, dans la page de soumission, tu récupères la valeur sélectionnée ($_POST ou $_GET) et tu affiches les données correspondantes.

    De façon plus "moderne" (enfin, façon de parler... c'est surtout la tendance du moment), tu peux utiliser JavaScript + AJAX. Une fois la valeur sélectionnée, tu la récupères en JavaScript puis tu lances une requête AJAX vers un script PHP qui feras les traitements et renverras le lien correspondant sans avoir besoin de changer de page.

    Enfin, une troisième solution (si le nombre d'options est limité) est de créer une hashmap JavaScript (depuis le script PHP) et au changement de valeur du select, tu affiches le lien correspondant dans la hashmap.

    Seulement, pour ces deux dernières solutions, il est nécessaire d'avoir un minimum de connaissance en JavaScript, donc pour débuter, c'est plutôt la première que je conseillerais.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Oui la première solution sera a ma porté pour l'AJAX je l'ai vu un peu en cour mais pas assez pour faire quelque chose et le javascript j'ai deja du mal a en intégrer dans ma page alors de là à en coder ^^

    Donc si j'ai bien compris il faut que j'utilise un input de type submit.

    Est ce que ce code serai le bon ?

    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
    <form id="toto" method="post">
    <?php
    $reponse = mysql_query("SELECT * FROM Nom_de_ma_table" );
    echo'<select name="url">';
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <option value="<?php $donnees['fichier'] ?>"><?php echo $donnees['type'];?></option>
    <?php
    }
    echo'</select>'; 
    echo '<input tye="submit" value="Valider"/>';
    echo '</form>';
    $url = $_POST['url'];
    echo "<a href='".$url."' id='lien'>Lien de téléchargement</a>";
    ?>

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Non, pas tout à fait.
    La première fois que tu arrives sur la page, $_POST['url'] n'existe pas, donc tu auras une erreur.
    Il faut tester si la valeur existe avec isset() ou !empty(). D'ailleurs, si elle n'existe pas, inutile d'afficher le lien !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Oui j'avais pas pensé à ça donc j'ai réglé le problème.

    Mais maintenant quand je valide, mon $_POST['url'] contient "valider"

    je te met ici le nouveau 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
    <form id="xerox" method="post">
    <?php
    $reponse = mysql_query("SELECT * FROM XEROX" );
    echo'<select name="url">';
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <option value="<?php $donnees['fichier_XEROX'] ?>"><?php echo $donnees['type_XEROX'];?></option>
    <?php
    }
    ?>
    </select>
    <input type="submit" name="url" value="Valider"/>
    </form>
    <?php
    if (isset($_POST['url'])) { echo "<a href='".$_POST['url']."' id='lien'>Lien de téléchargement</a>";}
    ?>

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ben oui malin...
    T'as donné le même name à ton select et à ton submit
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="url">
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="url" value="Valider"/>
    Comment veux-tu que PHP sache lequel utiliser ? Il va tout simplement choisir le dernier à avoir été défini !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Honte a moi '--

    le souci s'est qu'après ce changement j'ai plus rien dans mon $_POST['url']

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    As-tu fais un print_r($_POST) afin de vérifier que ta variable "url" existe après la validation du formulaire ?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Salut,

    Alors quand je fais print_r($_POST) il m'affiche array() et quand je fais print_r($_POST['url']) après avoir valider mon formulaire il n'affiche rien.

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Vérifie ce que contient le code source généré (dans le navigateur) au niveau des balises <option>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Et comment fait on ceci ?
    (question peut être idiote mais j'ai pas trop saisie ce que tu m'as demandé)

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    tout dépend de ton navigateur.
    Dans le cas général, il suffit de faire un clic droit et code-source de la page

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form id="" method="post">
    <select name="url"><option value="">COPYCENTRE C20</option>
    <option value="">WORKCENTRE M20i</option>
    </select>
    <input type="submit" name="val" value="Valider"/>
    </form>
    <a href=''>Lien de téléchargement</a></p>
    Voila donc je vois bien que mon value ne contient rien et donc qu'il ne me renvoie rien mais pourtant ma syntaxe est bonne pour récupérer les données dans ma base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = mysql_query("SELECT * FROM Nom_de_ma_table" );
    echo'<select name="url">';
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <option value="<?php $donnees['fichier'] ?>"><?php echo $donnees['type'];?></option>
    <?php
    }
    Sachant que dans ma table le champ 'fichier' existe

    EDIT : C'est bon j'ai réglé mon problème il manquait juste un 'echo' devant $donnees['fichier'] Merci beaucoup pour votre aide. Bonne fin de matiné et peut être a bientot ^^

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    ton champs fichier existe dans ta table mais est-il rempli par quelque chose ?

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = mysql_query("SELECT * FROM Nom_de_ma_table" );
    echo'<select name="url">';
    while ($donnees = mysql_fetch_array($reponse))
    {
    ?>
    <option value="<?php echo $donnees['fichier'] ?>"><?php echo $donnees['type'];?></option>
    <?php
    }
    Voila le code fonctionnel je vous remerci bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 7
    Dernier message: 26/04/2008, 10h48
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Recupere la valeur d'une ComboBox dans une autre cellule
    Par Henricoo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/06/2007, 13h56
  5. recuperer la valeur d'une variable dans une nouvlle page
    Par gloglo dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 11/01/2007, 17h08

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