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] Réinitialisation de la troisième liste


Sujet :

AJAX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut [AJAX] Réinitialisation de la troisième liste
    Bonjour,

    J'essaye de mettre en place trois liste liées.
    J'obtiens bien un résultat sur les trois listes mais après avoir selectionné un champs dans chaque liste et que je modifie la premiere, la derniere liste ne se reinitialise pas (elle garde la valeur).
    Voici l'exemple en quesiton : http://tiennot.fr/tutoajax/genre.php

    genre.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
    <html>
    	<head>
    		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    		<script type='text/javascript'>
    			var xhr = null; 
     
    			function getXhr(){
    				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; 
    				} 
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				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('espece').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","Ajaxespece.php",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('genre');
    				idgenre = sel.options[sel.selectedIndex].value;
    				xhr.send("idGenre="+idgenre);
    			}
    			function goesp(){
    				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){
    						leselect2 = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('variete').innerHTML = leselect2;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","Ajaxvariete.php",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('espece2');
    				idesp = sel.options[sel.selectedIndex].value;
    				xhr.send("idEsp="+idesp);
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<select name='genre' id='genre' onchange='go()'>
    					<option value='-1'>--Nom du Fabriquant --</option>
    							<?
    mysql_connect("XX","XX","XX");
    		mysql_select_db("XX");
    						$res = mysql_query("SELECT DISTINCT fabriquantAiguille FROM aiguille ORDER BY fabriquantAiguille");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value='".$row["fabriquantAiguille"]."'>".$row["fabriquantAiguille"]."</option>";
    						}
    					?>
    				</select>
    				<div id='espece' style='display:inline'>
    				<select name='espece'>
    					<option value='-1'>-- Numero du Lot --</option>
    				</select>
    				</div>
    				<div id='variete' style='display:inline'>
    				<select name='variete'>
    					<option value='-1'>-- Numero de l'Aiguille --</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    Ajaxespece :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     $idAuteur=$_POST['idGenre'];
            if(isset($_REQUEST["idGenre"])){
                    mysql_connect("XX","XX","XX");
                    mysql_select_db("XX");
                    $res = mysql_query("SELECT * FROM aiguille WHERE fabriquantAiguille='$idAuteur' ORDER BY lotAiguille ");
                    echo "<select name='espece2'  id='espece2' onchange='goesp()'>";
                    echo "<option value='-1'>-- Numero du Lot --</option>";
                    while($row = mysql_fetch_assoc($res)){
                            echo "<option value='".$row["lotAiguille"]."'>".$row["lotAiguille"]."</option>";
                    }
            }
    ?>

    Ajaxvariete :

    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
    <?php
      $idLivre=$_POST['idEsp'];
            echo "<select id='variete' name='variete'>";
            if(isset($_REQUEST["idEsp"])){
                    mysql_connect("XX","XX","XX");
                    mysql_select_db("XX");
                    $res = mysql_query("SELECT * FROM aiguille WHERE lotAiguille='$idLivre' ORDER BY typeAiguille");
                    echo "<option value='-1'>-- Numero de l'Aiguille --</option>";
                    while($row = mysql_fetch_assoc($res)){
                            echo "<option value='".$row["typeAiguille"]."'>".$row["typeAiguille"]."</option>";
                    }
            }
            else
                    echo "<option value='-1'>Choisir un auteur</option>";
            echo "</select>";
            
    ?>
    Cordialement
    Romain

  2. #2
    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
    après avoir selectionné un champs dans chaque liste et que je modifie la premiere, la derniere liste ne se reinitialise pas
    Et selon toi, à quel moment tu demandes à ton script de le faire ?
    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

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut
    Justement à aucun moment. C'est pour cela que j'aimerais avoir de l'aide pour que l'on m'indique où et quoi lui indiquer...

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    J'obtiens bien un résultat sur les trois listes mais après avoir selectionné un champs dans chaque liste et que je modifie la premiere, la derniere liste ne se reinitialise pas
    je décompose ton probleme comme ca:
    LORSQUE je modifie la première
    ALORS La dernière liste ne se réinitialise pas.

    donc lors de ton évènement onChange de la première liste, re-initialise ta dernière liste comme lors de ton chargement de la page.

Discussions similaires

  1. [AJAX] Exécution sous Internet Explorer (liste déroulantes liées)
    Par dream_of_australia dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/06/2007, 07h24
  2. [AJAX] Rafraîchissement automatique sur une liste déroulante
    Par frutix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2007, 16h09
  3. [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
  4. Réinitialiser une ClistCtrl à une list vide
    Par likenoother dans le forum MFC
    Réponses: 1
    Dernier message: 10/08/2006, 14h32
  5. [Ajax] pb avec 3 combos listes recupérant les infos via mysql
    Par laulaurent dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/05/2006, 17h38

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