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


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut [AJAX] Listes déroulantes liées
    Bonjour à tous et toutes, J'ai suivi le tuto des listes déroulantes liées dispo à cette adresse :
    http://siddh.developpez.com/articles/ajax/#LIV-A

    Et je l'ai un peu modifié:
    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
     
    <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 { // 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('livre').innerHTML = leselect;
    }
    }
    // Ici on va voir comment faire du post
    				xhr.open("POST","script.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('auteur');
    				idauteur = sel.options[sel.selectedIndex].value;
    				xhr.send("idAuteur="+idauteur);
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<label>Auteurs</label>
    				<select name='auteur' id='auteur' onchange='go()'>
    					<option value='-1'>Aucun</option>
    					<?
    						mysql_connect("localhost","*****","*****");
    						mysql_select_db("vefceit");
    						$res = mysql_query("SELECT * FROM atelier");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value='".$row["num_atelier"]."'>".$row["titre"]."</option>";
    						}
    					?>
    				</select>
    				<label>Livres</label>
    				<div id='livre' style='display:inline'>
    				<?php
                                    echo "<pre>";
                                    print_r($_POST);
                                    echo "</pre>";
            echo "<select name='livre'>";
            if(isset($_POST["idAuteur"])){
            
                    mysql_connect("localhost","****","*****");
                    mysql_select_db("vefceit");
                    $res = mysql_query("SELECT * FROM phase 
                            WHERE num_atelier=".$_POST["idAuteur"]);
                    while($row = mysql_fetch_assoc($res)){
                            echo "<option value='".$row["num_phase"]."'>".$row["titre"]."</option>";
                    }
            }
            echo "</select>";
    ?>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    Pour ceux qui n'ont pas vu la différence, j'essaye de faire en sorte que le post soit vers le même fichier script.php. Est ce que ça peut marcher ? ?

    Merci d'avance

  2. #2
    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
    Bonjour,

    La page appelée par la requête Ajax ne doit retourner que ce que tu veux mettre à jour dans la page appelante, mais pas une page en entier.

    A+.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Okay merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Plutôt que de faire un double post, je vais reposter ici

    Ce script ne marche absolument pas :
    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
     
    <select name='titre' id='titre' onchange="go()">	
         <option value='-1'>Aucun</option>
         <option id='opt3' value='3'>Hello</option>
         <option id='opt8' value='8'>Test</option>
    </select>
     
     
     
     
    <script type='text/javascript'>function getXhr(){
    var xhr = null;
         if(window.XMLHttpRequest)
                 xhr = new XMLHttpRequest();
    else if(window.ActiveXObject){
        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 go(){
    var xhr = getXhr();
    xhr.onreadystatechange = function(){
          if(xhr.readyState == 4 && xhr.status == 200){
            leselect =xhr.responseText;document.getElementById('numero_phase').innerHTML = leselect;}}	
     
            xhr.open("POST","ajaxLivre.php",true);xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            sel = document.getElementById('titre');
            idauteur = sel.options[sel.selectedIndex].value;
          xhr.send("idAtelier="+idauteur);
    }
     
    </script>
    voilà

  5. #5
    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 : 55
    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
    Heu... ça t'ennuierais de présenter ton code de façon à ce qu'il correctement soit lisible ?
    Tu sais des trucs du style sauts de ligne, séparation de HTML et de JavaScript, indentation...
    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

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 228
    Par défaut
    Je vais essayer
    Le truc c'est que c'est du code généré par php, c'est pas forcément clair du coup

  7. #7
    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
    Tu peux indenter ton code, poster la page php appelé et le code de la page appelante?

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

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