[AJAX] 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 à 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 :/