[AJAX] liste deroulante et recuperation de valeur
Quand on clique sur une date, dans heure debut il est censé s'afficher les heures correspondantes. Mais rien ne s'affiche, a part si dans la requete du fichier heuredebut.php, on met une variable au lieu de recuperer la selection du jour. Il y aurait donc un probleme de recuperation de la valeur 'jour' selectionnée dont on se sert dans la requete apres. Mais je ne vois po où est l'erreur, jai juste adapté le code d'ici http://siddh.developpez.com/articles/ajax/
ajoutacti.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 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
|
<html>
<head>
<title>Ajout dans le planning</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('heuredebut').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","heuredebut.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 jour
sel = document.getElementById('jour');
idjour = sel.options[sel.selectedIndex].value;
xhr.send("idJour="+idjour);
}
</script>
</head>
<body>
<center>
<form >
<fieldset style="width: 500px" style="height:800px"style="font-size:26">
<legend>Ajout dans le planning</legend><br>
<label>Jour : </label><br>
<select name='Jour' id='jour' onchange='go()' size="2" style="font-size:18" style="width: 200px" >
<option value='-1'>Aucun</option>
<option value="lundi">Lundi </option>
<option value="mardi">Mardi </option>
<option value="mercredi">Mercredi </option>
<option value="jeudi">Jeudi </option>
<option value="vendredi">Vendredi </option>
<option value="samedi">Samedi </option>
<option value="dimanche">Dimanche </option>
</select> <br><br>
<label>Heure debut : </label><br>
<div id='heuredebut' style='display:inline'>
<select name='heuredebut' size="10" style="font-size:18" style="width: 200px" >
<option value='-1'>Choisir un jour</option>
</select>
</div>
<br><br><label>Heure fin : </label><br>
<div id='heurefin' style='display:inline'>
<select name='heurefin' size="10" style="font-size:18" style="width: 200px" >
<option value='-1'>Choisir un jour</option>
</select>
</div>
<br><br>
</form>
<form method="post" action="ajoutacti.php">
<input type="submit" value="Ajouter" name="ajouter" style="font-size:22">
<input type="button" value="Retour" name="retour" style="font-size:22">
</fieldset>
</form>
</center>
</body>
</html> |
heuredebut.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<?php
echo "<select name='heuredebut'>";
if(isset($_POST["idJour"])){
mysql_connect("localhost","root","") or die("Mysql connect error");
mysql_select_db('reservation');
$res = mysql_query("SELECT * FROM creneau
WHERE jour_creneau=".$_POST['idJour']." ORDER BY id_creneau;")
or die ('Erreur sql!'.$res.'<br/>'.mysql_error());
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["id_creneau"]."'>".$row["hdebut_creneau"]."</option>";
}
}
echo "</select>";
?> |