Probleme Ajax

t_one1_1 -  
*Staff*Pkmn Messages postés 23 Statut Membre -
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"].'");';

?>

3 réponses

t_one1_1
 
Voila avec moins de fautes

J'ai un petit problème, je dois faire un formulaire, et je veux pouvoir récupérer d'une liste plusieurs fois la même info. Je suis débutant en Ajax, et j'ai essayé cette méthode mais ça ne fonctionne pas.
(Pour l'instant j'essaye juste d'écrire une seul fois les données, pour plus tard améliorer et avoir la possibilité d'envoyer plusieurs extension)
J'ai fais une (des) erreur mais je ne sais pas ou, quelqu'un pourrait-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
1
*Staff*Pkmn Messages postés 23 Statut Membre
 
""""J'ai fait une erreur""""
Hum Hum ...
Faire présent
je fais
tu fais
il fait
......
Merci de corriger le message et parler en Français tu sais le Français c'est la langue de la France
Toi comprendre ?????
0
*Staff*Pkmn Messages postés 23 Statut Membre
 
Merci :) ; Mais je ne peux pas t'aider !
0