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] 3 listes liées en ajax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 101
    Par défaut [AJAX] 3 listes liées en ajax
    Je cherche à liée 3 Listes en ajax, j'ai suivi le tuto http://siddh.developpez.com/articles/ajax/#LIV-A mais pour ajouter une troisième listes dépendante de la 2 ème je patauge.

    Avez vous un liens, tuto sur 3 listes liées ?

    merci pour votre aide

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Si tu réussis à lier liste1 et liste2, pourquoi ne peux tu pas lier liste2 et liste3 ? Il doit manquer quelque chose dans ta question

    ERE

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 101
    Par défaut
    Oui effectivement je suis pas très claire dans mes propos, en faite je reussi à charger la deuxième liste en fonction du choix de la première mais je n'arrive pas à en faire autant pour la troisième.

    Concrètement voici un exemple :

    fichier lieu.php

    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
    102
     
    <html>
    	<head>
    		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    		<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 { 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr;
    			}
     
     
    			function depart(){
    				var xhr = getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						document.getElementById('cityid').innerHTML = leselect;
    					}
    				}
     
    				xhr.open("POST","departement.php",true);
     
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('countryid');
    				countryid = sel.options[sel.selectedIndex].value;
    				xhr.send("countryid="+countryid);
    			}
     
     
     
    			function ville(){
    				var xhr = getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						document.getElementById('arealist').innerHTML = leselect;
    					}
    				}
     
    				xhr.open("POST","ville.php",true);
     
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('cityid');
    				cityid = sel.options[sel.selectedIndex].value;
    				xhr.send("cityid="+cityid);
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Selectionner votre lieu</legend>
    				<label>region</label>
    				<select name='countryid' id='countryid' onchange='depart()'>
    					<option value='0'>Choisir la region</option>
    					<?
    						$res = mysql_query("SELECT countryid, countryname
    										FROM $t_countries ct
     
    										ORDER BY countryname");
     
     
    						while($row=mysql_fetch_array($res))
    								{
    								echo "<option value=\"$row[countryid]\"";
    								if ($row['countryid'] == $_REQUEST['countryid']) echo " selected";
    								echo "> $row[countryname]</option>";
    								}
    					?>
    				</select>
    				<br><br>
    				<label>departement</label>
    				<div id='cityid' style='display:inline'>
    				<select name='cityid' id='cityid' onchange='ville()'>
    					<option value='-1'>Choisir un departement</option>
    				</select>
    				</div>
    				<br><br>
    				<label>villes</label>
    				<div id='arealist' style='display:inline'>
    				<select name='arealist'>
    					<option value='-1'>Choisir une ville</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    le fichier departement.php

    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
     
    			<?php
                            if(isset($_POST["countryid"])){
        
                            $sql = ("SELECT cityid, cityname FROM $t_cities WHERE countryid = ".$_POST["countryid"]." ORDER BY cityname");
                            $res = mysql_query($sql);
                            if (mysql_num_rows($res))
                            {
                            ?>
    			<select name='cityid' id='cityid' onchange='go()'>
     
    			<option value="" <?php if(!$data['cityid']) echo "selected"; ?>> <?php echo " <b> Choisissez le depart </b> "; ?> </option>
    			<?php
                                    $other_index = 1;
                                    while ($row = mysql_fetch_array($res))
                                    {
                                            $other_index++;
                                            echo "<option value=\"$row[cityname]\"";
                                            if ($data['cityid'] == $row['cityname']) { echo " selected"; $city_inlist = TRUE; }
                                            echo ">$row[cityname]</option>";
                                    }
                            ?>
    			<option value="" <?php if($data['cityid'] && !$city_inlist) echo "selected"; ?>>(<?php echo "Autre"; ?>)</option>
     
    			</select>
     
    			<?php
                                    } 
                            }
                            ?>
    et le fichier ville.php

    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
     
    			<?php
                            if(isset($_POST["cityid"])){
        
                            $sql = ("SELECT areaname FROM $t_areas WHERE cityid = ".$_POST["cityid"]." ORDER BY areaname");
                            $res = mysql_query($sql);
                            if (mysql_num_rows($res))
                            {
                            ?>
     
    			<select name="arealist" onchange="javascript:if(this.value) { this.form.area.value=this.value; this.form.area.disabled=true; } else this.form.area.disabled=false;">
     
    			<option value="" <?php if(!$data['area']) echo "selected"; ?>> <?php echo " <b> Choisissez la ville </b> "; ?> </option>
    			<?php
                                    $other_index = 1;
                                    while ($row = mysql_fetch_array($res))
                                    {
                                            $other_index++;
                                            echo "<option value=\"$row[areaname]\"";
                                            if ($data['area'] == $row['areaname']) { echo " selected"; $area_inlist = TRUE; }
                                            echo ">$row[areaname]</option>";
                                    }
                            ?>
    			<option value="" <?php if($data['area'] && !$area_inlist) echo "selected"; ?>>(<?php echo "Autre"; ?>)</option>
     
    			</select>
     
    			<?php
                                    } 
                            }
                            ?>
    J'essaie de comprendre mon erreur mais en vain, pourriez vous m'expliquer.

    merci d'avance

  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
    Sujet récurent s'il en est... une petite recherche t'aurais permis d'apprendre que le name ne peut pas être affecté dynamiquement comme cela et que les événements (comme tout ce qui est JavaScript) n'est pas évalué !
    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
    Inactif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 101
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Sujet récurent s'il en est... une petite recherche t'aurais permis d'apprendre que le name ne peut pas être affecté dynamiquement comme cela et que les événements (comme tout ce qui est JavaScript) n'est pas évalué !
    Je cherche, je m'intéresse, j'apprends, je code, peut être d'une mauvaise façon mais la motivation est là, pour être franche j'ai pas très bien saisie tes propos :

    name ne peut pas être affecté dynamiquement comme cela et que les événements (comme tout ce qui est JavaScript) n'est pas évalué !

  6. #6
    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
    Tu peux regarder ici, ici ou ici par exemple
    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

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

Discussions similaires

  1. [AJAX] 3 Listes liées en AJAX
    Par titinesaku dans le forum AJAX
    Réponses: 10
    Dernier message: 27/04/2009, 11h01
  2. [AJAX] 3 liste lièes en Ajax dont une qui reste vide
    Par mimotin dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/08/2008, 20h40
  3. [AJAX] plusieurs listes liées
    Par highman dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/03/2007, 10h31
  4. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59
  5. [AJAX] Restaurer l'état de listes liées par Ajax
    Par vallica dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/10/2006, 13h36

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