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] lier 3 listes deroulantes en ajax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Par défaut [AJAX] lier 3 listes deroulantes en ajax
    Bonjour,
    j'ai deux listes deroulantes en ajax qui sont alimentees d'une base de donnees oracle.j'ai pris le code tel qu'il est du forum (exemple deux liste deroulantes) et les deux listes fonctionne tres bien.
    je voudrais ajouter une 3eme liste mais je sais pas comment faire ?
    Ma base contient 3 tables:
    -aeroport(AE_ID,AE_NOM)
    -destinations(ID_DEs,ville_depart,ville_arrivee)
    -heure(Id_h,heure_depart,heure_arrivee,f_des)
    aeroport.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
    103
    104
     
    <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('destinations').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","Ajaxdestinations.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('aeroport');
    				idaeroport = sel.options[sel.selectedIndex].value;
    				xhr.send("idAeroport="+idaeroport);
    			}
    			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){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('heure').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","Ajaxheure.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('destinations');
    				iddestinations = sel.options[sel.selectedIndex].value;
    				xhr.send("idDestinations="+iddestinations);
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<label>genre</label>
    				<select name='aeroport' id='aeroport' onchange='go()'>
    					<option value='-1'>Aucun</option>
    					<?php
    $conn = oci_connect('scott', 'tiger', 'orcl');
    $sql = oci_parse($conn, 'SELECT* from aeroport');
    oci_execute($sql);
    while ($row = oci_fetch_array($sql)){
    echo "<option value='".$row['AE_ID']."'>".$row['AE_NOM'].",  ".$row['PAYS']."</option>";
                                                    }
                                            ?>
    				</select>
    				<label>Destinations</label>
    				<div id='destinations' style='display:inline'>
    				<select name='destinations'>
    					<option value='-1'>Choisir un auteur</option>
    				</select>
    				</div>
    				<label>heure</label>
    				<div id='heure' style='display:inline'>
    				<select name='heure'>
    					<option value='-1'>Choisir un genre et une espece</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    ajaxdestinations.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
     
    <?php
     
    	echo "<select name='destinations'  id='destinations' onchange='goesp()'>";
    	if(isset($_REQUEST["idAeroport"])){
    	$conn = oci_connect('scott', 'tiger', 'orcl');
    		$sql = oci_parse($conn, 'select aeroport.ae_nom,aeroport.pays from destinations,aeroport where destinations.ville_arrivee=aeroport.ae_id and ville_depart='.$_REQUEST["idAeroport"].'');
    oci_execute($sql);
    while ($row = oci_fetch_array($sql)){
    echo"";
    			echo "&nbsp;&nbsp;&nbsp;<option value='".$row['ID_DES']."'>".$row['AE_NOM'].",  ".$row['PAYS']."</option>";
    		}
    	}
    	else
    		echo "<option value='-1'>Choisir un auteur</option>";
    	echo "</select>";
     
    ?>
    et je sais pas comment introduire la 3eme liste calendrier ?
    voila le code :
    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
     
    	echo "<select name='heure'>";
    	if(isset($_REQUEST["idDestinations"])){
    		$conn = oci_connect('scott', 'tiger', 'orcl');
    		$sql = oci_parse($conn, 'select heure.heure_depart,heure.heure_arrivee from destinations,heure where f_des='.$_POST['idDestinations'].'');
    oci_execute($sql);
    while ($row = oci_fetch_array($sql)){
    echo"";
    			echo "&nbsp;&nbsp;&nbsp;<option value='".$row['HEURE_DEPART']."'>".$row['HEURE_ARRIVEE']."</option>";
    		}
    	}
    	else
    		echo "<option value='-1'>Choisir un auteur</option>";
    	echo "</select>";
     
    ?>
    besoin de votre aide SVP
    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
    Salut,
    C'est le div que tu appelles avec le getElementById et non le select. xhr n'est pas instancié.
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function goesp(){
    				var xhr= getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						document.getElementById('heure').innerHTML = leselect;
    					}
    				}
    				xhr.open("POST","Ajaxheure.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('dest');
    				iddestinations = sel.options[sel.selectedIndex].value;
    				xhr.send("idDestinations="+iddestinations);
    			}
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name='destinations' id='dest'>
    <option value='-1'>Choisir un auteur</option>
    </select>]
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<select name='destinations'  id='destinations' id='dest' onchange='goesp()'>";

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 20
    Par défaut meme probleme
    salut
    d'abord merci d'avoir repondu a ma question
    avec le code que tu as poste meme la 2eme liste ne fonctionne 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
    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
     
    <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('div_destinations').innerHTML = leselect; 
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","Ajaxdestinations.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('aeroport');
    				idaeroport = sel.options[sel.selectedIndex].value;
    				xhr.send("idAeroport="+idaeroport);
    			}
    			function goesp(){
    				var xhr= getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						document.getElementById('heure').innerHTML = leselect;
    					}
    				}
    				xhr.open("POST","Ajaxheure.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('dest');
    				iddestinations = sel.options[sel.selectedIndex].value;
    				xhr.send("idDestinations="+iddestinations);
    			}
     
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<label>genre</label>
    				<select name='aeroport' id='aeroport' onchange='go()'>
    					<option value='-1'>Aucun</option>
    					<?php
    $conn = oci_connect('scott', 'tiger', 'orcl');
    $sql = oci_parse($conn, 'SELECT* from aeroport');
    oci_execute($sql);
    while ($row = oci_fetch_array($sql)){
    echo "<option value='".$row['AE_ID']."'>".$row['AE_NOM'].",  ".$row['PAYS']."</option>";
                                                    }
                                            ?>
    				</select>
    				<label>Destinations</label>
    				<div id='div_destinations' style='display:inline'>
    				<select name='destinations' id='dest'>
    <option value='-1'>Choisir un auteur</option>
    </select>
    				</div>
    				<label>heure</label>
    				<div id='heure' style='display:inline'>
    				<select name='heure'>
    					<option value='-1'>Choisir un genre et une espece</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </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
     
    <?php
     
    	echo "<select name='destinations'  id='destinations' id='dest' onchange='goesp()'>";
    	if(isset($_post["idAeroport"])){
    	$conn = oci_connect('scott', 'tiger', 'orcl');
    		$sql = oci_parse($conn, 'select aeroport.ae_nom,aeroport.pays from destinations,aeroport where destinations.ville_arrivee=aeroport.ae_id and ville_depart='.$_post["idAeroport"].'');
    oci_execute($sql);
    while ($row = oci_fetch_array($sql)){
    echo"";
    			echo "&nbsp;&nbsp;&nbsp;<option value='".$row['ID_DES']."'>".$row['AE_NOM'].",  ".$row['PAYS']."</option>";
    		}
    	}
    	else
    		echo "<option value='-1'>Choisir un auteur</option>";
    	echo "</select>";
     
    ?>
    pour la 3eme liste je sais comment faire la requete si je recois les deux id de la premiere et la 2eme liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo $_POST['IDDESTINATIONS'];
    ?>

Discussions similaires

  1. [AJAX] lier 1 liste déroulante à un texte
    Par xoflam dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/02/2008, 19h47
  2. Listes deroulantes dependantes [Ajax]
    Par salsero1 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/01/2008, 18h02
  3. [AJAX] lier deux listes déroulantes alimenté par une base de données (Mysql)
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/04/2007, 01h06
  4. [AJAX] Lier une liste déroulant à un champ texte
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/04/2007, 14h50
  5. [Rico] Afficher depuis d'une liste deroulante (PHP+AJAX)
    Par maxis dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 27/02/2006, 12h47

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