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 :

[AJAX] Remplir une liste déroulante avec la réponse du réquête d'Ajax


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [AJAX] Remplir une liste déroulante avec la réponse du réquête d'Ajax
    Salut,
    Je viens de commencer en ajax, j'aimerais savoir comment faire pour pour remplir une liste déroulante avec la réponse obtenu de la requête ajax. Par exemple on a la fonction:

    function stateChanged()
    {
    var tabReponse, reponse;

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
    tabReponse = xmlHttp.responseText.split("\n");
    reponse = tabReponse.join("<br>");
    document.getElementById("ici").innerHTML=reponse;
    }
    }


    réponse =>
    1:Mère

    2ère

    3:Fille

    4:Fils

    J'aimerais mettre ces valeures dans une liste déroulante.

    Merci d'avance pour votre aide !!

    PS: Si possible, me donner un lien ou quelqu'un l'a déjà fait ...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    tu as plusieurs possibilités (et en cherchant un peu sur le forum je suis persuadé que tu aurais pu les trouver)...

    1- si ton select existe déjà :
    => ta réponse va être un bout de code JS créant les options :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("id_du_select").options = new Option('texte à afficher','value');
    et dans ce cas là tu utilises eval() et non innerHTML !

    2- ton select n'existe pas :
    => tu auras positionné un conteneur vide là où le select devra apparaître, ta réponse sera un bout de HTML, et là tu utilises innerHTML ;

    3- tu peux aussi (dans les deux cas si je ne me trompe pas) passer par le DOM... mais c'est peut-être un poil plus compliqué et je suis pas expert...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    Re,

    remplace ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reponse = tabReponse.join("<br>");
    par les 3 suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    reponse = "<select>";
    for(i=0;i<tabReponse.length;i++) reponse += "<option value='"+tabReponse[i]+"'>"+tabReponse[i]+"</option>";
    reponse += "</select>";

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par duppp2000 Voir le message
    Salut,
    Je viens de commencer en ajax, j'aimerais savoir comment faire pour pour remplir une liste déroulante avec la réponse obtenu de la requête ajax. Par exemple on a la fonction:

    function stateChanged()
    {
    var tabReponse, reponse;

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
    tabReponse = xmlHttp.responseText.split("\n");
    reponse = tabReponse.join("<br>");
    document.getElementById("ici").innerHTML=reponse;
    }
    }


    réponse =>
    1:Mère

    2ère

    3:Fille

    4:Fils

    J'aimerais mettre ces valeures dans une liste déroulante.

    Merci d'avance pour votre aide !!

    PS: Si possible, me donner un lien ou quelqu'un l'a déjà fait ...
    Salut, si ça t'intéresse j'ai fait un petit framework qui fait ça.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Cela ne fonctionne pas !!
    J'ai placé un div dans mon code html, je peux voir le résultat, mais cela génère pas le select. Faudrait-il que je place un dans le code html aussi?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    renvoie le code de ta page stp et de ta fonction callback

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Désolé .........
    Désolé,
    Ce bout de codes fonctionne: reponse = "<select>";
    for(i=0;i<tabReponse.length;i++) reponse += "<option value='"+tabReponse[i]+"'>"+tabReponse[i]+"</option>";
    reponse += "</select>";

    dans un id,mais pas sur le formulaire ..........

    Je tiens à vous remercier tous pour vos commentaires, ils m'ont bcp aide. Grâce à certains j'arrive à mettre la réponse de la requête dans un select. J'ai pu aussi faire fonctionner le deuxième select. Toutefois, je n'arrive pas à m'en sortir avec le troisième malgré les exemples qui sont disponible sur le forum. De plus, ce qui me casse encore la tête est le suivant. Sur le formulaire, on doit être en mesure d'effectuer les mêmes choix trois fois. Comme par exemple tu magazine en ligne: tu as trois liste déroulantes qui te permettent de choisir trois produits: J'ai mis le fichier .js et un jpg pour voir de quoi je parle. Toute aide supplementaire serait grandement apprecié ............
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    si ton select n'existe pas encore dans ton formulaire :
    [code]<span id="ici"></span>[code]
    et ton select apparaitra dans cette zone...

    si ton select existe déjà, le fichier sur lequel tu fais la requete doit renvoyer un bout de js pour la création de chacune des options, donc de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["id_de_ton_form"].elements["id_de_ton_select"].options[i] = new Option('texte à afficher','valeur de value');
    tu dois donc avoir à la sortie, une ligne par option à créer, i s'incrémentant évidemment ! par contre du coup tu n'utilises plus innerHTML, mais eval(xmlHttp.responseText) !!

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/11/2009, 16h14
  2. [MySQL] Remplir une liste déroulante avec des données de la base de données
    Par moukit233 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/08/2009, 12h05
  3. Remplir une liste déroulante avec PHP
    Par beegees dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2009, 12h51
  4. Comment remplir une liste déroulante avec une macro sans doublons
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/06/2007, 19h34
  5. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 16h26

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