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] Listes liées en AJAX


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 71
    Par défaut [AJAX] Listes liées en AJAX
    Bonjour à tous amis développeurs !

    Après des heures et des heures de recherche, et étant débutant en AJAX, je me retrouve dans une situation on ne peut plus bloquée.
    Voici mon soucis:

    Je souhaite construire, une deux listes liées.
    Dans mon premier select, je vais pouvoir sélectionner une promotion.
    A partir de cette sélection, un script va se déclencher afin de construire une deuxième comboBox contenant les étudiants de la promotion sélectionnée précédemment.

    Voici le code que j'ai:

    Le Javascript et l'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
     
    function getXhr() {
    	  var xhr = null;
    	  if(window.XMLHttpRequest) {
    		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 chargeEtudiantPourPromoSelectionne() {
    	  var xhr = getXhr();
    	  xhr.onreadystatechange = function() {
    		if(xhr.readyState == 4 && xhr.status == 200) {
    		      leselect = xhr.responseText;
    		      document.getElementById('etudiants').innerHTML = leselect;
    		}
    	  }
     
    	  xhr.open("POST", "choix_promo.php", true);
    	  xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    	  sel = document.getElementById('promotion');
    	  idPromotion = sel.options[sel.selectedIndex].value;
     
              // Le problème est ici !!!
    	  alert(idPromotion);
    	  xhr.send("idPromotion="+idPromotion);
        }
    le fichier choix_promo.php que j'appelle dans mon script ci-dessus:
    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
     
    <?php
          include './includes/Connexion.php';
          
          echo "<select id='etudiants' name='etudiants' style='width: 100%; font-size: 11px; font-family: Verdana'>";
          if(isset ($_POST["idPromotion"])) {
                $requete = Connexion::requete("SELECT * FROM etudiant WHERE id_promotion = '".$_POST['idPromotion']."' ORDER BY nom_etudiant");
                
                while($row = mysql_fetch_assoc($requete)) {
                      echo "<option value='".$row['id_booster']."'>".$row['nom_etudiant']." ".$row['prenom_etudiant']."</option>";
                }
          }
          
          echo "</select>";
    ?>
    Et enfin, mon fichier HTML contenant le select pour les promotions et celui pour les étudiants:
    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
     
    <tr>
                        <td class="texteCommun">* Promotion</td>                                    
                        <td>
                            <select id="promotion" name="promotion" onchange="chargeEtudiantPourPromoSelectionne()" style="width: 100%; font-size: 11px; font-family: Verdana">
                                <option value="-1"></option>
                                <option value="1">Classe 1</option>
                                <option value="2">Classe 2</option>
                                <option value="3">Classe 3</option>
                            </select>
                        </td>
                    </tr>			
                    <tr>
                        <td class="texteCommun">* Etudiants</td>
                        <td>
    			  <select id="etudiants" name="etudiants" style="width: 100%; font-size: 11px; font-family: Verdana">
    				<option value="-1"></option>
    			  </select>
                        </td>
                    </tr>
    Le problème est en fait, que lorsque je reçois mon il me donne -1 comme valeur... En gros, mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sel.options[sel.selectedIndex].value
    ne fonctionne pas et ne va pas récupérer les valeurs de mes options dans le select promotion.

    Est-ce que quelqu'un a une idée ? J'espère que vous allez pouvoir m'aider je désespère

    A noté, j'ai testé sous Safari et Mozilla, j'ai la même erreur...

    Merci d'avance !!

  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
    Tu n'aurais pas mis la balise form dans la balise table par hasard...
    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 confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 71
    Par défaut
    Non, par contre j'ai un fichier administration.php qui contient une balise <form> et dans cette balise <form>, je fait un include du fichier que j'ai posté juste au dessus.

    Mais comment sait le script dans quel form il doit aller taper ?

  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
    Ben justement, il en sait rien

    Il ne faut pas mettre de formulaire dans un autre formulaire !
    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
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 71
    Par défaut
    D'accord, mais justement là je n'ai qu'un seul formulaire, mais ça ne fonctionne pas toujours pas...

    J'ai un formulaire, à l'intérieur je fais un include de ma page avec les selects, etc (dans celle-ci y'a pas de formulaire). Donc au final j'ai bien qu'un seul formulaire.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bosnoir,

    Peux-tu nous montrer ton code actuel ?

    A+.

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

Discussions similaires

  1. [AJAX] Listes liées avec Ajax
    Par r3iko dans le forum AJAX
    Réponses: 1
    Dernier message: 30/06/2009, 00h19
  2. [AJAX] Listes liées avec Ajax
    Par Zak_92 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/08/2007, 12h19
  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. [AJAX] liste liée ajax: s'iou plait, cherchez l'erreur
    Par redwire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/09/2006, 20h26
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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