11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je cherche comment faire pour changer un SELECT en AJAX en fonction de la valeur choisie dans le premier, mais je n'y arrive absolument pas, je ne sais comment faire.

J'ai créé un fonction :

function changeData()
{
var xhr;
try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
catch (e)
{
try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e2)
{
try { xhr = new XMLHttpRequest(); }
catch (e3) { xhr = false; }
}
}

xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
if(xhr.status == 200)
document.ajax.dyn="Received:" + xhr.responseText;
else
document.ajax.dyn="Error code " + xhr.status;
}
};

xhr.open( GET", "data.php", true);
xhr.send(null);
}

dans le formulaire j'ai :

<td>
<SELECT name="A" onChange="changeSport("<?php ?>")">

<?php while( list( $A, $B, $C ) = mysql_fetch_row($res )) {
if ($A) {
echo '<OPTION VALUE="'.$A.' name='sp'">'.$A.'</OPTION>';
}
}
?>
</SELECT>
</td>


et dans le fichier data.php :

je voudrais mettre ma requête. De plus sachant que j'utilise Jquery il y a peut être plus facile ? et comment passé la valeur du premier SELECT a la fonction que la passera au fichier PHP et comment exploité le retour ?
En un mot je suis dans la mouise...
Un ptit coup pouce serait le bien venu, merci par avance.
Bonsoir,

J'ai trouvé cette exemple 5 de la page : http://www.toutjavascript.com/savoir/xmlhttprequest.php3

c'est déconcertant, je ne suis pas brillant. Ce qui n'interpelle c'est le code JS proposé, il faut bien le mettre dans une fonction request05() ?
et pour le PHP, avant de faire la requete SQL j'ai mis une tableau pour tester :

$result = array(tennis,natation,course,velo);

echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 0;';
while($r = $result)

echo 's.options[s.options.length] = new Option("'.$r["Species"].'");';


mais cela ne marche est ce que j'ai oublié quelque chose ?
Merci par avance de votre aide
Dans ton appel à la fonction changeSport dans ton select, il faut que tu passe en paramètre le select courant et le select qui recevra les options.

Quand tu fais ta requète ajax, il faut passer la valeur de ton select au script PHP.

Dans ta fonction qui récupère les données de la requète ajax, il faut utiliser plutôt responseXML qui permet d'avoir les options directement insérable dans la page HTML.