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] Récupération valeur d'une liste déroulante


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Par défaut [PHP-JS] Récupération valeur d'une liste déroulante
    Bonjour,

    J'éssaie de récuperer la valeur de ma liste déroulante par le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="mapage?ref='.$select[0].'">Valider</a>';
    Hélas, ma variable $select n'affiche rien !
    De ce fait, avez-vous une idée pour récupérer la valeur de la listbox?

    c'est l'exemple de "Gérer des listes déroulantes":
    http://php.developpez.com/sources/?p...rms#gestlistes

    Merci d'avance.

    Yves

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Par défaut
    Ta liste déroulante fait-elle partie d'un formulaire ?

  3. #3
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Par défaut
    Hee non ?!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Par défaut
    Citation Envoyé par vandeyy
    Hee non ?!
    Ben il faut! Tout input doit appartenir à un formulaire, sinon, tu peux pas accèder à ses valeurs.
    Graphiquement, tu peux te passer de la balise de formulaire et voir ta liste dans la page. Mais c'est comme tout un tas de balises: elles ne sont pas nécessaires et de nombreux navigateurs s'en passent, mais les règles du html les imposent.

    rajoute une balise <form action="mapage">...</form> et ça ira beaucoup mieux.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    quel est le code de ta page où est le formulaire?
    quel est le code source (html) que tu obtiens quand le formulaire s'affiche?

    sans ça il est dur de deviner comment tu as interprété le tutoriel/exemple

  6. #6
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Par défaut
    VOILI VOILA mon fichier php !

    Pouvez-vous adapter le fichier afin de trouver une solution ?!

    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
    <?php
    $table_ref = array (
    1 => 'un' ,
    2 => 'deux' ,
    3 => 'trois' ,
    4 => 'quatre' ,
    5 => 'cinq' ,
    6 => 'six' ,
    7 => 'sept Sécurité' ,
    8 => 'huit' ,
    9 => 'neuf' ,
    10 => 'dix',
    11 => 'onze'
    ) ;
    function listbox ( $name , $array_value = array() , $array_selected , $multiple = 0 , $size = 1 )
    {
            $select = '<select' . ( ( $multiple == 1 ) ? ' multiple name="' . $name . '[]"' : ' name="' . $name . '"' ) . 
    ' size="' . $size . '">' . "n" ;
     
                foreach ( $array_value as $key => $value )
                {
                    $select .= '<option value="' . $key . '"' .
                    ( ( $multiple == 1 ) ? ( in_array ( $key , $array_selected ) ? ' selected="selected"' : '' ) : 
    ( $key == $array_selected ? ' selected="selected"' : '' ) ) .
                    '>' . $value . '</option>' . "n" ;
                }
     
            $select .= '</select>' ;
            return $select ;
    }
    print("
    <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"
    \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">
    <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">
    <head>
    <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\" />
    <meta name=\"description\" content=\"description\" />
    <meta name=\"keywords\" content=\"keywords\" />
    <meta name=\"author\" content=\"your-name  / test /\" />
    <title></title>
    </head>
    
    <body>
    <form>
    ");
     
    //echo listbox ( 'table_ref' , $table_ref , ( isset ( $_POST['table_ref'] ) ? $_POST['table_ref'] : 1 ) ) ;
    echo listbox ( 'table_ref' , $table_ref , 1 ) ;
     
    echo '<a href="upd_gen_reef.php?tb_ref='.$table_ref[0].'">Valider</a>';
    print(" 
    </form>
    </body>
    </html> ");
     
    ?>
    Le but du jeu c'est d'appeler une page qui a pour argument la valeur sélectinnée dans la liste déroulante.

    Merci Yves

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Par défaut
    petits conseils:
    - quand tu envoie ton code, essaie de le simplifier pour le rendre plus lisible.
    - essaie aussi de tout faire tenir dans la page pour tout avoir sous les yeux

    ...

    D'après ce que j'ai saisi, tu veux faire un lien qui, si tu sélectionne le troisième élément de ta liste, t'affiche la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    upd_gen_reef.php?tb_ref=trois
    Si c'est le cas, ... repense à tes cours de php, javascript, ...

    Voici une proposition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    // 'table_ref' devient 'tb_ref'
    echo listbox ( 'tb_ref' , $table_ref , 1 ) ;
    ...
    // plus de lien:
    // echo '<a href="upd_gen_reef.php?tb_ref='.$table_ref[0].'">Valider</a>';
     
    // mais un bouton
    echo '<input type="submit" name="Valider">';
     
    print("</form>\n</body>\n</html>");
    ... normalement, ça devrait le faire!

  8. #8
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Par défaut
    Merci pour ta réponse.

    Peux-tu me préciser ton idée car je ne vois plus le lien avec la page appelée (upd_gen_reef.php?).

    En outre, ce n'est pas le trois en lettre mais en chiffe (valeur)!

    Merci à toi.

    Yves

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    argh
    l'exemple donné est fait par un quelqu'un qui s'y connait bien et qui donc propose une fonction qui te créé automatiquement un menu déroulant
    c'est très bien fait

    mais quand on débute on peut commencer avec les bases, c'est à dire définir avec ses mimines le menu déroulant
    dans ton cas en html ça pourrait donner :


    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
    <form>
    <select name="table_ref">
    <option value="1" selected="selected">un</option>
    <option value="2">deux</option>
    <option value="3">trois</option>
    <option value="4">quatre</option>
    <option value="5">cinq</option>
    <option value="6">six</option>
    <option value="7">sept Sécurité</option>
    <option value="8">huit</option>
    <option value="9">neuf</option>
    <option value="10">dix</option>
    <option value="11">onze</option>
    </select>
    </form>
    ce qui est plus simple à comprendre.

    bref
    j'aime bien ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo listbox ( 'table_ref' , $table_ref , 1 )
    cela signifie que tu nommes ton menu déroulant $table_ref soit le même nom que le premier tableau associatif qui contient la liste des options...


    ensuite il y a un problème de comprehension du fonctionnement du php.
    le php n'est pas dynamique et est orienté serveur.
    ton lien sur valider est créé sur le serveur. quand tu modifies ton choix dans la liste ça change du coté client (toi) mais pas serveur.
    donc ça ne risque pas de marcher.

    et résultat quand tu appelles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="upd_gen_reef.php?tb_ref='.$table_ref[0].'">Valider</a>';
    tu appeles la valeur 0 du tableau associatif... qui commence à 1. Donc rien n'apparait.


    bon je te propose des modifs légères sur ton script principal (dans mon prochain post) pour obtenir ce que tu veux.

    mais essaye de comprendre ce que fais le code que tu utilises sinon tu vas revenir ici souvent

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2008, 11h20
  2. Réponses: 5
    Dernier message: 12/06/2007, 10h21
  3. Réponses: 7
    Dernier message: 19/05/2007, 11h33
  4. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  5. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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