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

JavaScript Discussion :

syntaxe recuperation de valeur de select


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut syntaxe recuperation de valeur de select
    Bonjour,
    j'ai mis un code de ce genre mais s'amarche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="liste" onchange="alert(document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text);">
     <option >toto</option>
     <option >tutu</option>
    </select>
    pour récupérer la valeur selectionner !!!!merci d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par benhsaien Voir le message
    Bonjour,
    j'ai mis un code de ce genre mais s'amarche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="liste" onchange="alert(document.getElementById('liste').options[document.getElementById('liste').selectedIndex].text);">
     <option >toto</option>
     <option >tutu</option>
    </select>
    pour récupérer la valeur selectionner !!!!merci d'avance
    document.getElementById veut dire : par l'id, donc si tu mets un "name" normal que ça ne fonctionne pas, il faut mettre un id.

    Et accessoirement pourquoi ne pas utiliser this dans ton cas car tu as directement l'élément dans this.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="liste" onchange="var opt = this.options[this.selectedIndex]; alert(opt.innerText || opt.textContent);">
     <option >toto</option>
     <option >tutu</option>
    </select>
    Petite remarque tu feras mieux d'utiliser "value", cela est mieux si tu utilises un select.

  3. #3
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    Bonjour;
    merci s'amarche mais est t'il possible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="liste" onchange="var opt = this.options[this.selectedIndex]; ">
     <option >toto</option>
     <option >tutu</option>
    </select>
     
    <?php
    $b="<script lanaguage='javascript'>document.write(opt);</script>";
    echo $b;
    ?>
    car je veux récupérer la valeur et l'etuliser.je sais que php coté serveur et javascript coté client ????

    ou du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="liste" onchange="var opt = this.options[this.selectedIndex]; <?php  $a="<script lanaguage='javascript'>document.write(opt.innerText || opt.textContent);</script>" ?>">
     <option >toto</option>
     <option >tutu</option>
    </select>
     
    <?php echo $a; ?>

  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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par dukej
    Petite remarque tu feras mieux d'utiliser "value", cela est mieux si tu utilises un select.
    +1
    Ce qui te permettrais en plus de simplifier la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="var opt = this.value;"
    Citation Envoyé par benhsaien
    Bonjour;
    merci s'amarche mais est t'il possible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="liste" onchange="var opt = this.options[this.selectedIndex]; ">
     <option >toto</option>
     <option >tutu</option>
    </select>
     
    <?php
    $b="<script lanaguage='javascript'>document.write(opt);</script>";
    echo $b;
    ?>
    car je veux récupérer la valeur et l'etuliser.je sais que php coté serveur et javascript coté client ????
    Ca pourrait être possible car ton script est appelé après ta balise, donc si opt est défini lorsque le script est interprété, c'est bon.
    Ceci dit, ça ne marchera pas pour deux raisons : tu initialises opt sur le onchange, donc il n'existera pas au moment où le write sera interpété et surtout, tel que tu le définis, opt est un objet HTML qui ne possède donc pas de méthode toString() et ne peut donc pas être utilisé dans write().
    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
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    Bonjour.
    j"ai décider de récupérer la valeur directement mais s'amarche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="liste" onchange="var opt = this.options[this.selectedIndex]">
     <option >toto</option>
     <option >tutu</option>
     
    </select>
     <script language="javascript">
    document.write(opt);
    </script>

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par Bovino Voir le message
    +1
    Ce qui te permettrais en plus de simplifier la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="var opt = this.value;"
    Ca pourrait être possible car ton script est appelé après ta balise, donc si opt est défini lorsque le script est interprété, c'est bon.
    Ceci dit, ça ne marchera pas pour deux raisons : tu initialises opt sur le onchange, donc il n'existera pas au moment où le write sera interpété et surtout, tel que tu le définis, opt est un objet HTML qui ne possède donc pas de méthode toString() et ne peut donc pas être utilisé dans write().
    Tu devrais surtout lui dire qu'il est totalement impossible de setter une variable PHP de la manière qu'il le fait

  7. #7
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Allez ! Dernière mise à jour de cet exemple de code... marqué pourtant résolu.

    Ajout de la fonction show_Selection() et d'un conteneur ayant l'identifiant 'text' déstiné à reçevoir le texte de l'option sélectionnée...

    Code html : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
    <script type="text/javascript">//<![CDATA[
     
            // Objet global
            var trace={value:'',text:''};
     
            // Gestion des cookies
            function createCookie(name,value,days) {
                    if (days) {
                            var date = new Date();
                            date.setTime(date.getTime()+(days*24*60*60*1000));
                            var expires = "; expires="+date.toGMTString();
                    }
                    else var expires = "";
                    document.cookie = name+"="+value+expires+"; path=/";
            }
            function readCookie(name) {
                    var nameEQ = name + "=";
                    var ca = document.cookie.split(';');
                    for(var i=0;i < ca.length;i++) {
                            var c = ca[i];
                            while (c.charAt(0)==' ') c = c.substring(1,c.length);
                            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
                    }
                    return null;
            }
            function eraseCookie(name) {
                    createCookie(name,"",-1);
            }
     
            // Affiche les informations de l'option choisie
            function show_Selection(){
                    var txt;
                    if(trace.value)
                            txt='&lt;option value="<strong>'+trace.value+'</strong>"&gt;<strong>'+trace.text+'</strong>&lt;option&gt;';
                    else
                            txt='Aucune option sélectionnée';
     
                    document.getElementById('text').innerHTML=txt;
            }
     
            // Mise à jour de l'objet trace
            function update_Selection(){
                    trace.text='';
                    trace.value=document.getElementById('list').value;
                    if(trace.value){
                            createCookie('selectedValue',trace.value);
                            trace.text=document.getElementById('list').options[trace.value].text;
                    }else
                            eraseCookie('selectedValue');
     
                    // Affiche nouvelles infos
                    show_Selection();
            }
     
            // Initialise l'objet trace une fois le document chargé
            function init_Selection(){
                    trace.text='';
                    trace.value=readCookie('selectedValue');
                    if(trace.value){
                            document.getElementById('list').options[trace.value].selected=true;
                            trace.text=document.getElementById('list').options[trace.value].text;
                    }
                    // Affiche nouvelles infos
                    show_Selection();
            }
     
            window.onload=init_Selection;
    //]]>
    </script>
    </head>
    <body>
    <form action="#" method="get">
    	<p>
    		<label for="list">Votre sélection :</label>
    		<select name="list" id="list" onchange="update_Selection();">
    			<option value="" selected="selected">Choisissez un élément</option>
    			<option value="1">Air</option>
    			<option value="2">Eau</option>
    			<option value="3">Terre</option>
    			<option value="4">Feu</option>
    		</select>
    	</p>
    </form>
    <p>Vous avez sélectionné : <span id="text"> </span></p>
    </body>
    </html>

  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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par dukej
    Tu devrais surtout lui dire qu'il est totalement impossible de setter une variable PHP de la manière qu'il le fait


    Tu crois vraiment que la ligne
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $b="<script lanaguage='javascript'>document.write(opt);</script>";
    signifie pour lui que $b vaudra opt ???

    J'avoue que je n'avais pas envisagé un truc aussi... optimiste

    Bref, benhsaien, comprends bien que tu ne peux pas utiliser au chargement de la page un choix que l'utilisateur n'a pas encore fait !
    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
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    Bonjour,
    tous s'amarche bien j'ai combiner vos réponse pour a la fin créé ce code mais il reste que la variable trace soit déclarer GLOBAL ou....pour que je puisse acceder????

    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
    <head>
    </head>
    <body>
    	<p>
    		<label for="list">Votre sélection :</label>
    		<select name="list" id="list" onchange="update_Selection(this.options[this.selectedIndex]);">
    			<option value="" selected="selected">Choisissez un élément</option>
    			<option value="1">Air</option>
    			<option value="2">Eau</option>
    			<option value="3">Terre</option>
    			<option value="4">Feu</option>
    		</select>
    	</p>
    </body>
    </html>
     
    <script type="text/javascript">//<![CDATA[
    function update_Selection(a){
     trace=a.innerText;
    	}
    </script>
     
    <script type="text/javascript">
    document.write(trace);
    </script>

  10. #10
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    J'ai édité le code plus haut. Je pense qu'il est propre.

    Je te laisse l'étudier

  11. #11
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    merci a vous tous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="list" id="list" onchange="document.location.href='module_missionaire/edit?id="<?php $missionaire->getMissionaire()->get->getIdmissionaire; ?>"&etat='.this.options[this.selectedIndex].innerText;'">

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/10/2013, 06h13
  2. javascript/php:recuperer une valeur de select dans une meme page dans une var php
    Par hraiwen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/03/2009, 13h12
  3. recuperer la valeur de select
    Par midosd dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/01/2009, 12h22
  4. Réponses: 4
    Dernier message: 25/10/2007, 14h01
  5. Récupérer la valeur d'un select
    Par weed dans le forum Linux
    Réponses: 5
    Dernier message: 25/11/2006, 17h11

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