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] Listes déroulantes liées


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 62
    Points : 41
    Points
    41
    Par défaut [AJAX] Listes déroulantes liées
    Bonjour,

    J'ai un petit problème avec deux liste déroulante. j'ai utilisé le tuto disponible sur ce site.
    Liste 1 Maille :
    - 1 Semaine
    - 2 Mois
    - 3 Année
    Liste 2 Période:
    - S1, S2, S3, S3, ...
    - Janvier, févrieer, Mars, ...

    Voici le code que j'utilise pour la partie AJAX:
    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
    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 getPeriodes()
    			{
    				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){
    						listePeriodes = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('Periodes').innerHTML = listePeriodes;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ListePeriodes.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('Maille');
    				idMaille = sel.options[sel.selectedIndex].id;
    				xhr.send("idMaille="+idMaille);
    			}
    Voici le code php pour générer la page HTML :
    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
    echo "<form action='Integration.php' method=post>";
    echo '<Table border ="0" title ="intégration" width ="100%">';
    echo '<tr align="center" ><H3> Intégration des données</H3></tr>';
    echo '<fieldset style="width: 500px">';
    echo '<tr ><td>Maille</td>  ';
    echo '<td>';
    	echo '<div>';
    		$sql ="SELECT     IDMaille AS IdMaille, Maille AS Maille FROM T_Mailles;";
    		echo creer_select ("Maille", $sql, "Maille", 1, '','getPeriodes()', false);
    	echo '</div>';
    	echo '<td>Période</td>  ';
    	echo '<td>';
    	echo '<div id="Periodes">';
    		echo '<select name="listePeriodes" id="listePeriodes">';
    		//echo '<option selected>Séléctionnez d\'abord une Maille</option>';
    		//echo '<!--Insertion des données AJAX concernant les periodes-->';
    		echo '</select>';
    	echo '</div>';
    echo '</td>';
    echo '</Table>';
    echo '</form>';
    et enfin voici la page listPeriodes.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    require_once ("DataConnect.php");
    require_once ("ConnexionBd.php");
    require_once("CreListe_Events.php");
     
    $sql = "SELECT Période, Désignation FROM T_Périodes WHERE IDMaille=".$_POST["Maille"]." ORDER BY Période";
    echo creer_select ("ListePeriodes", $sql, "ListePeriodes", '', '','', false);
     
     
    	//$sql ='select Période, Désignation, IDMaille from T_Périodes where IDmaille = 1 order by Période ';
    	//echo creer_select ("Période", $sql, "Période", '', '','', false);
     
    ?>
    Le problème c'est que qu'on je sélectionner un élément de la liste Maille, la liste période disparait
    Si quelqu'un a une idée
    Merci d'avance pour toute aide

  2. #2
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 290
    Points : 217
    Points
    217
    Par défaut
    Bonsoir,

    est-ce qu'il se passe la même chose selon le navigateur ?
    De souvenir, je crois bien qu'avec IE6 par exemple, il y a des problèmes pour insérer des balises option. IL faudrait insérer le select et les options dedans.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="Periodes"> 
    -> update ce bloc par <select id="liste_periode"><option>S1</option><option>S2</option><option>S3</option></select>
    </div>
    De plus, la fonction creer_select, il faudrait que tu dises l'utilité de chaque paramètre.

Discussions similaires

  1. [AJAX] Listes déroulantes liées
    Par Empty_body dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/07/2008, 22h47
  2. [AJAX] Listes déroulantes liées
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/04/2008, 09h58
  3. [AJAX] listes déroulantes liées
    Par alex6644 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/03/2008, 08h33
  4. [AJAX] Listes Déroulantes Liées : 2e liste qui ne s'affiche pas
    Par fayred dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/07/2007, 13h07
  5. [AJAX] Listes déroulantes liées avec Ajax
    Par paupiette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/08/2006, 16h51

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