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 :

[PHP-JS] Liste déroulante -> variable PHP


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut [PHP-JS] Liste déroulante -> variable PHP
    Bonjour,

    Comment faire pour récupérer le champs sélectionné d'une liste déroulante et la mettre dans une variable sans poster le formulaire. Je pense qu'avec l'évènement "onchange" on devrait pourvoir faire quelque chose mais je n'ai pas réussis à utiliser cet évènement. Quelqu'un aurait-il une idée ?

    Merci

    Voila mon formulaire pour l'info:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	<select name="table1">
    		<option value="libre">Service finance</option>
    		<option value="finance">Libre</option>
    		<option value="global">Global</option>
    	</select>
    	&nbsp
    	<select name="table2">
    		<option value="finance">Libre</option>
    		<option value="libre">Service finance</option>
    		<option value="global">Global</option>
    	</select>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour, cela ne diffère pas vraiment d'un input dit "basique".
    Tu récupère la valeur sélectionnée en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $resultatduchoixdelaliste = $_POST["table1"];
    $resultatduchoixdelaliste2 = $_POST["table2"];
    N'oublie pas dans la balise <form> de ton formulaire, de préciser qu'il s'agit de la méthode POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <form action = "page.php" method = "POST">

  3. #3
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Oui mais le truc c'est que je veut que ca se face quand je change ma liste. Je veut pas devoir poster mon formulaire avec un boutton.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Autant pour moi, j'avais mal lu, désolé !

    Ceci dit, je n'utilise pas trop le javascript, peut-être ce code (trouvé sur google) t'aidera-t-il :

    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>
    <P>Selectionner une option différente dans cette
       cartouche à liste de choix déroulante pour déclencher 
       l'événement <B><FONT COLOR="#FF0000">onchange
       </FONT></B>.<P>
     
      <SELECT NAME=selTest 
      onchange="alert('Index: ' + this.selectedIndex + '\nValeur: ' + 
      this.options[this.selectedIndex].value)">
        <OPTION VALUE="Lapins">Lapins
        <OPTION VALUE="Poulets">Poulets
        <OPTION VALUE="Canards">Canards
      </SELECT>
    </FORM>

  5. #5
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci, ce code se raproche de ce que je veut mais je n'arrive pas à passer "this.options[this.selectedIndex].value" (contien la valeur de la liste) dans ma vriable php, j'ai essayer ca mais ca marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <select name="table1" onchange=<"?php $mavaleur = ?> this.options[this.selectedIndex].value">
    ...

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Une question : à quoi va te servir cette variable php et dans quelle page doit-elle se trouver ? La page où se trouve ton formulaire ou celle du traitement ? A moins que tu effectues le traitement dans la même page...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Citation Envoyé par Alvaten
    Merci, ce code se raproche de ce que je veut mais je n'arrive pas à passer "this.options[this.selectedIndex].value" (contien la valeur de la liste) dans ma vriable php, j'ai essayer ca mais ca marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <select name="table1" onchange=<"?php $mavaleur = ?> this.options[this.selectedIndex].value">
    ...
    Houla tu mélanges tout là

    Le javascript, et ce qui se passe sur le navigateur ne se passe que du coté du client (donc pas de php). C'est à dire qui si tu change la valeur d'une liste le serveur(qui fait tourner le php) n'est pas au courant.

    Les deux seuls moyen d'affecter une variable par ta liste déroulante c'est de poster le formulaire, ou alors de faire une requête AJAX sur ton serveur par l'intermédiaire du Javascript.
    Such is the situation in our Fallen Galaxy

  8. #8
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Celira:

    Ma variable se trouve dans la page du formulaire, si vraiment je pourait effctuer le traitement dans cette même page. La variable va servire a afficher des donées en fonction du choix.

    Asmodean:

    Si je ne vait pas utiliser AJAX je doit donc poster mon formulaire ? Si oui je le posterait mais coment faire pour le faire au changement d'une des mes liste ?

  9. #9
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Alors tu dois pouvoir faire un onchange="form.submit" ou quelque chose du genre. Enfin ca tu trouveras facilement sur google. Ca fait longtemps que j'ai pas fait de javascript
    Such is the situation in our Fallen Galaxy

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je me doutais bien que c'était pour ce genre de chose.
    Ce que tu peux faire, c'est une soumission de formulaire au changement de focus (avec onchange ou onselect) et récupérerer la variable par $_POST.

    Le code aurait grosso modo cette tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form method="post" action="" name="form">
    	<select name="table1" onselect="form.submit()">
    		<option value="libre">Service finance</option>
    		<option value="finance">Libre</option>
    		<option value="global">Global</option>
    	</select>
    </form>
    <?php
    if (isset ($_POST['table1'])){
      $table1=$_POST['table1'];
    // et ce que tu veux faire de table1...
    }
    Remarque : si l'utilisation de ta variable rajoute des champs dans le formulaire, la balise </form> doit être fermée après le bloc if.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci beaucoups, c'est exactement ce que je voulais. Une dernière question , comment conserver le choix de la liste après le post (je voudrait que la liste affiche le dernier choix fait).

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    il faut que tu testes si la valeur de l'option est celle passée en post. Dans ce cas, il faut ajouter l'attribut selected dans la balise d'option.
    Comment conserver la sélection d'un menu déroulant après une soumission ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Ok merci beaucoups a tous pour votre aide.

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

Discussions similaires

  1. [MySQL] extraire le choix dans un variable d'une liste déroulante mysql en php
    Par guytibo dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/12/2010, 19h17
  2. [PHP-JS] Liste déroulante et 2 variables
    Par Kips dans le forum Langage
    Réponses: 6
    Dernier message: 10/02/2006, 14h39
  3. [PHP-JS] liste déroulante
    Par tioseb dans le forum Langage
    Réponses: 1
    Dernier message: 20/01/2006, 09h59
  4. [php/JS]listes déroulantes liées
    Par allyson dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/01/2006, 12h30
  5. [PHP-JS] liste déroulante
    Par tioseb dans le forum Langage
    Réponses: 7
    Dernier message: 16/01/2006, 12h04

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