Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 11h29   #1
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 26
Points : 0
Points : 0
Par défaut Listes déroulantes liées

Salut,
je veux recuperer la valeur d'une balise select pour l'utiliser dans une autre balise select se trouvant dans la même page et dans le même formulaire.
ça marche pas je sais pas c quoi le pb.
Voilà mon code
code JavaScript
Code :
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
 
<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('borderaux_client').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxDemande.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 du projet
				sel = document.getElementById('nom_projet');
				nomprojet = sel.options[sel.selectedIndex].value;
				xhr.send("nom_projet="+nomprojet);
			}
		</script>
code php:
Code :
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
<form id="form1" name="form1" method="post" action="mod_demande2.php">
<fieldset style="border-color:#000000"><legend class="Style12">Choisir les informations suivantes pour la demande &agrave; modifier:</legend>
<br><br>
  <p align="center">
  <div align="center"><strong>Nom projet : </strong>
    <select name="nom_projet" id="nom_projet" onchange='go()'>
	<?php
 
			$reponse = mysql_query("SELECT distinct nom_projet FROM projet");
			while($donnees=mysql_fetch_array($reponse))
			{
			echo"<option>".$donnees['nom_projet']."</option>";
			}	
	  ?>
    </select>
  </div><br/>
 
  <div align="center"><strong>Borderaux client : </strong>
  <div id='borderaux_client' style='display:inline'>
    <select name="borderaux_client">
<option value='-1'>Choisir un projet</option>
    </select></div>
  </div><br><br></fieldset>
  <label>
  <div align="center"><br />
    <input type="reset" name="Submit2" value="Annuler" />
    <input type="submit" name="Submit" value="Modifier" />
  </div>
  </label>
 
</form>
Voilà mon fichier "ajaxDemande.php" que j'ai utiliser dans mon code JavaScript
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
	echo "<select name='borderaux_client'>";
	if(isset($_POST["nom_projet"])){
		mysql_connect("localhost","root","");
		mysql_select_db("alu");
 
		$res = mysql_query("SELECT d.id_demande,d.borderaux_client FROM demande d,demande_projet dp,projet p WHERE d.id_demande=dp.id_demande AND dp.id_projet=p.id_projet AND p.nom_projet='".$_POST["id_projet"]."' ORDER BY d.id_demande");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value='".$row["id_demande"]."'>".$row["borderaux_client"]."</option>";
		}
	}
	echo "</select>";
?>
La case des demandes ne contient aucune demande :/
angelina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 13h22   #2
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 26
Points : 0
Points : 0
je rectifie les trois codes:
code javascript
Code :
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
<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('borderaux_client').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxDemande.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 du projet
				sel = document.getElementById('nom_projet');
				idprojet = sel.options[sel.selectedIndex].value;
				xhr.send("id_projet="+idprojet);
			}
		</script>
code php:
Code :
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
<form id="form1" name="form1" method="post" action="mod_demande2.php">
<fieldset style="border-color:#000000"><legend class="Style12">Choisir les informations suivantes pour la demande &agrave; modifier:</legend>
<br><br>
  <p align="center">
  <div align="center"><strong>Nom projet : </strong>
    <select name="nom_projet" id="nom_projet" onchange='go()'>
	<?php
 
			$reponse = mysql_query("SELECT * FROM projet ORDER BY nom_projet");
			while($donnees=mysql_fetch_array($reponse))
			{
			echo"<option value='".$donnees["id_projet"]."'>".$donnees['nom_projet']."</option>";
			}	
	  ?>
    </select>
  </div><br/>
 
  <div align="center"><strong>Borderaux client : </strong>
  <div id='borderaux_client' style='display:inline'>
    <select name="borderaux_client">
<option value='-1'>Choisir un projet</option>
    </select></div>
  </div><br><br></fieldset>
  <label>
  <div align="center"><br />
    <input type="reset" name="Submit2" value="Annuler" />
    <input type="submit" name="Submit" value="Modifier" />
  </div>
  </label>
 
</form>
fichier "ajaxDemande.php" que j'ai utiliser dans mon code JavaScript
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
	echo "<select name='borderaux_client'>";
	if(isset($_POST["id_projet"])){
		mysql_connect("localhost","root","");
		mysql_select_db("alu");
 
		$res = mysql_query("SELECT d.id_demande,d.borderaux_client FROM demande d,demande_projet dp,projet p WHERE d.id_demande=dp.id_demande AND dp.id_projet=p.id_projet AND p.id_projet='".$_POST["id_projet"]."' ORDER BY d.id_demande");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value='".$row["id_demande"]."'>".$row["borderaux_client"]."</option>";
		}
	}
	echo "</select>";
?>
ça marche tjrs pas maintenant meme la liste des projets ne s'affichent pas :/
j'attends vos suggestions
angelina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 15h31   #3
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Regardes ici tu devrais y trouver ton bonheur
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 21h45   #4
Invité de passage
 
Femme
Inscription : novembre 2011
Messages : 26
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : novembre 2011
Messages : 26
Points : 0
Points : 0
Merci pour ta reponse mais vu que je suis débutante en ajax peux-tu me suggerer un exemple simple ?
angelina88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h08.


 
 
 
 
Partenaires

Hébergement Web