Probleme Ajax
Fermé
t_one1_1
-
5 nov. 2009 à 17:17
*Staff*Pkmn Messages postés 16 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 5 novembre 2009 - 5 nov. 2009 à 17:56
*Staff*Pkmn Messages postés 16 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 5 novembre 2009 - 5 nov. 2009 à 17:56
3 réponses
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
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
*Staff*Pkmn
Messages postés
16
Date d'inscription
mercredi 4 novembre 2009
Statut
Membre
Dernière intervention
5 novembre 2009
5 nov. 2009 à 17:21
5 nov. 2009 à 17:21
""""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 ?????
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 ?????
*Staff*Pkmn
Messages postés
16
Date d'inscription
mercredi 4 novembre 2009
Statut
Membre
Dernière intervention
5 novembre 2009
5 nov. 2009 à 17:56
5 nov. 2009 à 17:56
Merci :) ; Mais je ne peux pas t'aider !