Posez votre question Signaler

Probleme Ajax

t_one1_1 - Dernière réponse le 5 nov. 2009 à 17:56
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"].'");';
?>
Lire la suite 

Probleme Ajax »

3 réponses
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
""""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 ?????
Ajouter un commentaire
Réponse
+0
moins plus
Merci :) ; Mais je ne peux pas t'aider !
Ajouter un commentaire
Ce document intitulé « Probleme Ajax » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook