Bonjour,

J'ai utilisé la fonction des listes liées en ajax donnée sur ce site. Mais le problème c'est que je n'arrive pas à récupérer la valeur selectionner dans la première liste déroulante.

Voici le script javascript:


<script>

var xhr = null;

function getXhr(){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
} else { // XMLHttpRequest non supporté par le navigateur
alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');
xhr = false;
}
}

/** Méthode qui sera appelée sur le click du bouton */
function go(){
getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('valeur_saisie2').innerHTML = leselect;
}
}

// Ici on va voir comment faire du post
xhr.open('POST','rechercher.php',true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('valeur_saisie');
tech = sel.options[sel.selectedIndex].value;
xhr.send('Tech='+tech);
}

</script>
Voici mon formulaire:

echo "<form method='post' action='rechercher.php' name='form_rech'>\n";
.....

echo "<br><select name='valeur_saisie' id='liste_rech' onChange=\"go();\">";
$a_sql="SELECT * From technique WHERE archive='0' ORDER BY technique ASC";
$a_result=mysql_query($a_sql)or die ('ERREUR '.a_sql.' '.mysql_error());
while ($a_line=mysql_fetch_array($a_result)){
echo "<option>".$a_line['technique']."</option>";
}
echo "</select>";
echo "<li></li>\n";
echo "<br><select name='valeur_saisie2' id='liste_rech' >";
echo " <option value='%' selected>Sous-cat. technique</option>";
$a_sql="SELECT * From sous_categorie_technique where d_technique=".$tech." ORDER BY sous_categorie_technique ASC";
$a_result=mysql_query($a_sql)or die ('ERREUR '.a_sql.' '.mysql_error());
while ($a_line=mysql_fetch_array($a_result)){
echo "<option>".$a_line['sous_categorie_technique']."</option>";
}
echo "</select>";
Si quelqu'un peut m'aider?