[AJAX] Menu lié : de innerHTML
Bonjour.
Je pense que l'option innerHTML me pose problème.
code tpl
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
| {literal}
<script language='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 load_lstdysf(){
var val_ip = document.getElementById('ip_ordi').value;
var xhr = getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
document.getElementById('ip_ordi').innerHTML = leselect;
}
}
xhr.open("POST","load_dysfon.php",true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send('dte_dysf='+escape(document.getElementById('dte_dysf').value)+'& type=load_lstdysf');
}
</script>
{/literal}
<form name="ordi_enr" action="inter_ajout.php" method="post" onsubmit="return verif_form();">
<p align="center"><label for="dte_dysf">Surevenu le:</label>
<input name="dte_dysf" type="text" value="" size="10" maxlength="10" >
<label>IP : </label>
<select name="ip_ordi" onchange="put_lbdysfon(this.value)">
<option value="-1">Choisir une adresse ip</option>
</select></form> |
le code php
Code:
1 2 3 4 5 6 7 8 9 10
| <?php
header("Cache-Control: no-cache, must-revalidate");
header('Content-type: text/html; charset=iso-8859-1');
require_once('config.inc.php');
echo "<select name='ip_ordi'>";
$res = mysql_query("SELECT ip_ordin FROM tb_ordinateur");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["ip_ordin"]."'>".$row["ip_ordin"]."</option>";
}
echo "</select>"; |
En executant ce code il ne marche, alors pour tester ou se trouve le pb, je supprime la ligne
Code:
document.getElementById('ip_ordi').innerHTML = leselect;
et je la remplace par
Code:
alert(xhr.responseText);
Alors il affiche les valeurs, je conclus que c'est innerHTML qui est soit mal utilisé, soit par à sa place.
Merci de votre aide.