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

AJAX Discussion :

[AJAX] Lier 3 listes en Ajax


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [AJAX] Lier 3 listes en Ajax
    Salut,
    Je cherche à liée 3 Listes en ajax en asp, mais pour ajouter une troisième listes dépendante de la 2 ème je patauge.
    voila j'ai 3 listes (genre, espece, varieté).

    Quand je choisi un genre la liste univiversite se rempli (ca fonctionne)
    apres je choisi une etablissement et la liste variete doit se remplire (ca ne fonctionne pas).

    ca se compose en 3 feuilles
    liste.asp: qui contient les 3 listes
    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
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    <html><head><script type='text/javascript'>
     
    function getXhr(){
    var xhr = null; 
    if(window.XMLHttpRequest) // Firefox et autres
    xhr = new XMLHttpRequest(); 
    else if(window.ActiveXObject){ // Internet Explorer 
    try {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    else { // XMLHttpRequest non supporté par le navigateur 
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    xhr = false; 
    } 
    return xhr;
    }
     
    /**
    * Méthode qui sera appelée sur le click du bouton
    *///
     
    function go(){
    var xhr = getXhr();
    // On défini ce qu'on va faire quand on aura la réponse
    xhr.onreadystatechange = function(){
    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    if(xhr.readyState == 4 && xhr.status == 200){
    leselect = xhr.responseText;
    // On se sert de innerHTML pour rajouter les options a la liste
    document.getElementById('etab').innerHTML = leselect;
    }
    }
     
    // Ici on va voir comment faire du post
    xhr.open("POST","etab.asp",true);
    // ne pas oublier ça pour le post
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    // ne pas oublier de poster les arguments
    // ici, l'id de l'auteur
    sel = document.getElementById('univ');
    iduniv = sel.options[sel.selectedIndex].value;
    xhr.send("iduniv="+iduniv);
     
    }
     
     
    /**
    * Méthode qui sera appelée sur le click du bouton
    *///
     
    function go2(){
    var xhr = getXhr();
    // On défini ce qu'on va faire quand on aura la réponse
    xhr.onreadystatechange = function(){
    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    if(xhr.readyState == 4 && xhr.status == 200){
    leselect = xhr.responseText;
    // On se sert de innerHTML pour rajouter les options a la liste
    document.getElementById('fil').innerHTML = leselect;
    }
    }
     
    // Ici on va voir comment faire du post
    xhr.open("POST","fil.asp",true);
    // ne pas oublier ça pour le post
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    // ne pas oublier de poster les arguments
    // ici, l'id de l'auteur
    sel = document.getElementById('etab');
    idetab = sel.options[sel.selectedIndex].value;
    xhr.send("idetab="+idetab);
     
    }
     
    </script>
    </head>
    <body>
    <table>
    <tr>
    <td width="296" align="right">
    <!-- #include file="../connexion/connect2.asp" -->
    <select name='univ' id='univ' onchange='go()'>
    <option value='-1'> listeuniv<option>
    <%
    set rs_univ2= conn.Execute(" select distinct all_uni,cd_uni from univ order by cd_uni asc")
    if not rs_univ2.eof then
    do while not rs_univ2.eof 
    if rs_univ2("cd_uni") = Session("all_uni") then %>
    <option value="<%=rs_univ2(0) %>"><%=rs_univ2(1) %</option>
    <% else %>
    <option value="<%=rs_univ2(1) %>" ><%=rs_univ2(0) %></option>
    <%
    end if
    rs_univ2.MoveNext
    loop
    end if %>
    </select></td></tr></table>
    </body></html>
    etab.asp qui contien les requetes pour remplire la liste
    etab.asp :
    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
    <html><head><meta http-equiv="Content-Type" content="text/html;charset=windows-1256" />
    </head>
    <body>
    <!-- #include file="../connexion/connect2.asp" --> 
    <select name='etab' id='etab' onchange='go2()'>
    <option value='-1'>Etab</option>
    <% vcod_conc= request.form("iduniv") 
    set rs_etab= conn.Execute(" select distinct ll_etab,num_cnss from etab , univ where etab.cd_uni =univ.cd_uni and etab.cd_uni ='"&vcod_conc&"'")
     
    if not rs_etab.eof then
    do while not rs_etab.eof 
    if rs_etab("num_cnss") = Session("ll_etab") then 
    %>
    <option value="<%=rs_etab(1) %>" ><%=rs_etab(0) %></option>
    <% else %>
    <option value="<%=rs_etab(1) %>" ><%=rs_etab(0) %></option>
    <%
    end if
    rs_etab.MoveNext
    loop
    end if %>
    </select>
    </body></html>
    fil.asp
    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
    <html>
     
    <meta http-equiv="Content-Type" content="text/html;charset=windows-1256" />
     
    <body>
    <!-- #include file="../connexion/connect2.asp" -->
    <%
    vetab= request.form("idetab")%>
    <select name='fil' id='fil' >
    <option value='-1'>Aucun</option>
    <% vetab= request.form("idetab")	
    set rs_fil= conn.Execute("SELECT DISTINCT fe.Code_Fil, f.Lib_long
    FROM Fil_Etab fe INNER JOIN
    Filiere f ON fe.Code_Fil = f.code_fil INNER JOIN
    Concours c ON fe.Code_Conc = c.Code_Conc INNER JOIN
    ETAB e ON fe.Code_Etab = e.num_cnss and e.num_cnss ='"&vetab&"' ORDER BY fe.Code_Fil")
    if not rs_fil.eof then
    do while not rs_fil.eof 
    if rs_fil("Code_Fil") = Session("Lib_long") then %>
    <option value="<%=rs_fil(0) %>" 
    ><%=rs_fil(1) %></option>
    <% else %>
    <option value="<%=rs_fil(1) %>" ><%=rs_fil(0) %></option>
    <% end if
    rs_fil.MoveNext
    loop
    end if
    %>
    </select>	
    </body>
    </html>
    Le problème : au niveau du choix de liste 2 pour remplir liste3..........
    Avez vous un liens, tuto sur 3 listes liées ?

    merci pour votre aide

  2. #2
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Bonsoir,

    Il n'y a qu'une liste dans liste.asp ?
    La variable 'leselect' n'est pas déclarée avec le mot clé var --> variable globale ?

Discussions similaires

  1. [AJAX] lier deux listes avec AJAX
    Par batoule80 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/09/2008, 01h35
  2. [MySQL] Lier deux listes avec AJAX
    Par batoule80 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2008, 00h00
  3. [AJAX] lier 1 liste déroulante à un texte
    Par xoflam dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/02/2008, 19h47
  4. [AJAX] lier deux listes déroulantes alimenté par une base de données (Mysql)
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/04/2007, 01h06
  5. [AJAX] Lier une liste déroulant à un champ texte
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/04/2007, 14h50

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