Bonjour,
J'ai un petit problem, je dois faire un formulaire, et je veux pouvoir recuperer d'une liste plusieur fois la même info. Je suis débutant en Ajax, et j'ai essayer cette methode mais ça ne fonctionne pas.
(Pour l'instant j'essaye juste d'écrire une fois les données, pour plus tard améliorer et permetre la possibilité d'envoyer plusieur extension)
J'ai fait une erreur mais je ne sais pas ou, quelqu'un pourait t'il m'aider?
En tout cas rien fonctionne :c et je bloque totalement dessus...... Need some help!
Page html:
<form name="form_ext" id="form_ext" action="" method="">
<td>Extension</td>
<td>
<select id="id_extension" name="id_extension" onchange="choisir_extension(this.form)">
<?php
$request='SELECT id_extension,lib_extension FROM t_extension ORDER BY lib_extension';
$result = envoi_requete ($tab2, $request);
while($ligne=mysql_fetch_array($result[0]))
{
echo '<option value="'.$ligne['id_extension'].'">'.$ligne['lib_extension'].'</option>';
}
?>
</select></td>
<td>
<select id="lib_extension_r" name="lib_extension_r" >
</select>
<input id="id_extension_r" name="id_extension_r" type="hidden" >
</td>
</form>
La fonction ajax
function choisir_extension(f)
{
var l1 = f.elements["id_extension"];
var l2 = f.elements["lib_extension_r"];
var index = l1.selectedIndex;
if(index < 1)
l2.options.length = 0;
else
{
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
document.getElementById("id_extension_r" ).innerHTML = f.elements["id_extension"];
xhr_object.open("POST", "extension.php", true);
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "id_extension="+escape(l1.options[index].value)+"&form="+f.name+"&select=lib_extension_r";
xhr_object.send(data);
}
}
extension.php
<?php
header('Content-type: text/html; charset=iso-8859-1');
include ("./mysql/config.inc.php");
$request = 'SELECT lib_extension FROM t_extension WHERE id_extension = \''.$_POST['id_extension'].'\'';
$result = envoi_requete ($tab2, $request);
echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 0;';
while($r = mysql_fetch_array($result[0]))
echo 's.options[s.options.length] = new Option("'.$r["lib_extension"].'");';
?>
Configuration: Windows Vista
Firefox 3.5.4