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 :

Comment faites-vous pour récupérer la valeur d'une liste dynamique ?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut Comment faites-vous pour récupérer la valeur d'une liste dynamique ?
    Bonjour,

    J'ai un forumulaire composé de trois listes déroulantes, dont la seconde et la troisième sont générés en AJAX (base de données).Ce que souhaiterais réaliser, c'est récupérer la valeur de ma troisième listes.

    Ceci fonctionne sous IE, mais ne fonctionne pas sous Firefox ! Je n'arrive pas à récupérer la valeur du champs que je sélectionne.



    Code AJAX pour remplir la liste :

    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
    function showLots(str)
    {
    if (str=="")
      {
      document.getElementById("info_liste_lots").innerHTML="";
      return;
      } 
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else{
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function(){
        try
         {
           if (xmlhttp.readyState==4 && xmlhttp.status==200){
           document.getElementById("info_liste_lots").innerHTML=xmlhttp.responseText;
          }
        }catch (e){
        alert(e);
        }
    }
     
    xmlhttp.open("GET","js/ajax-lots.php?ref_articles='"+str+"'",true);
    xmlhttp.send();
    }


    Fichier ajax-lots.php pour remplir ma liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $num_lot = $array_tmp[1];					
    echo '<option value="'.$num_lot.'">Lot : '.xxxxxxxxx.'</option>';


    Code la page HTML dans lequel j'intégre ma liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="lst_produit" onchange="valeur_lot();">	
    <option id="Faite_Choix" value="toto">Choigissez votre lots...</option>
    <option id="info_liste_lots">Lots...</option>                   
    </select>


    Code JS pour récupérer la valeur de ma liste fonctionnant sous IE mais pas sous Firefox !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function valeur_lot(){	
    	var formname = document.forms['Form_Etiquette'];
    	var optlist = formname.lst_produit;
    	var i = optlist.selectedIndex;
    	alert(optlist.options[i].text);	
    }



    Auriez-vous une idée de mon problème et pourquoi cela ne fonctionne t-il pas sous Firefox ?

    D'avance merci pour les réponses !
    ++

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    text n'est pas crossbrowser ?

    essaye innerHTML si tu veux le texte affiche ou value si tu veux sa valeur ????
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    text n'est pas crossbrowser ?

    essaye innerHTML si tu veux le texte affiche ou value si tu veux sa valeur ????

    Bonjour,

    J'ai essayé avec Value, ça ne fonctionne pas (valeur null) car voici le code générés que "je vois" dans la source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    <select name="lst_produit" onchange="valeur_lot();">	
                    <option id="Faite_Choix" value="toto">Choigissez votre lots...</option>
                    <option id="info_liste_lots">Lots...</option>                   
                    </select>


    Avec innerHTML selon la navigateur cela me renvoie des valeurs différents :

    IE : FF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="ccc">ma valeur</option>';

    Autre point, je n'arrive pas à sélectionner l'élèment dans ma liste sous FF ! je suis obligé d'utiliser le clavier pour récupérre la valeur ! J'avou en pas y comprendre grand chose :/

    D'avance merci
    ++

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option id="info_liste_lots">Lots...</option>
    un id ne se justifie pars sur une option ...
    ensuite il n'a pas de value ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option id="info_liste_lots">Lots...</option>
    un id ne se justifie pars sur une option ...
    ensuite il n'a pas de value ...
    Effectivement....
    Je viens de rectifier ceci et ça fonctionne sous FF !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <select name="lst_produit" id="lst_produit" onchange="valeur_lot();" >	
    <option value="-1">Choigissez votre lots...</option>         
    </select>
    Un autre problème se pose, ça ne fonctionne plus sous IE ! La liste déroulante ne se rempli même plus ! Une idée ? Est-ce dans AJAX que cela se joue ?

    ++


    ps : j'ai modifié l'ID entre temps (j'ai fais les modifications necessaires pour ça)

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    tu ajoutes les options brut de pomme en innerHTML dans ton select .

    Il a quelle tête le responseText ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Il a quelle tête le responseText ?
    Comment ça ?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    ça c'est ton select au départ ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="lst_produit" id="lst_produit" onchange="valeur_lot();" >	
    <option value="-1">Choigissez votre lots...</option>         
    </select>
    ou, quand et comment rajoutes tu les autres options ???
    par le responseText de l'ajax ???
    si oui quel est son contenu ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ça c'est ton select au départ ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="lst_produit" id="lst_produit" onchange="valeur_lot();" >	
    <option value="-1">Choigissez votre lots...</option>         
    </select>
    ou, quand et comment rajoutes tu les autres options ???
    par le responseText de l'ajax ???
    si oui quel est son contenu ???
    Je vais essayer de répondre le mieux possible !
    Depuis le fichier ajax-lots.php je vais chercher mes informations dans la base de données pour les afficher !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    header('Content-type: text/plain; charset=ISO-8859-1');
    header('Cache-Control: no-cache, must-revalidate');
    header('Pragma: no-cache');
    (...  [ base de données ] + [ traitement de l'info ] )
    echo '<option value="'.$num_lot.'">xxxxxxxxx</option>';
    (...)

    Et je fichier JS qui va chercher ce fichier pour me les afficher dans ma page

    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
    function showLots(str)
    {
    if (str=="")
      {
      document.getElementById("info_liste_lots").innerHTML="";
      return;
      } 
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
    	 try
         {
    	  	if (xmlhttp.readyState==4 && xmlhttp.status==200)
    		{
    		document.getElementById("lst_produit").innerHTML=xmlhttp.responseText;
    		}
    	 }catch (e){
    		 alert(e);
     
     
    	 }
     
      }
     
    xmlhttp.open("GET","js/ajax-lots.php?ref_articles='"+str+"'",true);
    xmlhttp.send();
    }
    J'espère avoir répondu à ta question !
    ++

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    qu'obtiens tu si tu fais un alert du responseText ?

    a mon avis c'est là que le bats blesse, insertion d'elements options dans un select en innerHTML
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Bonjour et désolé pour la réponse un peu tardive...

    En fait, j'ai changé mon fusils d'épaule et j'ai trouvé un tutoriel que tu avais donné à un autre posteur à un moment donné.

    http://siddh.developpez.com/articles/ajax/

    Aprés quelques adaptation à mon cas, tout fonctionne !
    Merci de ton aide ! ccool:

    Bonne journée...

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

Discussions similaires

  1. Comment fait-on pour récupérer les infos d'une image
    Par Mario Rousson dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/11/2011, 14h10
  2. Réponses: 3
    Dernier message: 20/10/2008, 12h10
  3. [Configuration] Comment faites-vous pour séparer les paramètres offline/online
    Par robichou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 20/02/2007, 02h51
  4. comment faite vous pour comparer 2 classeurs excel ,
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/11/2006, 14h44
  5. [Struts]comment faites-vous pour enregistrer..
    Par pouss dans le forum Struts 1
    Réponses: 7
    Dernier message: 30/09/2005, 12h55

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