Deux listes liées

Fermé
black-ice-50 Messages postés 13 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 6 juin 2009 - 6 juin 2009 à 13:54
Bonjour,
je veux crée deux liste liées j'utilise un code ajax que j'ai trouvé dans un forum,mais j'arrive pas a le faire fonctioner,
voici les deux listes dans le formulaire
<tr>
<td width="230">famille:
<select name="typeproduit" id="typeproduit" onchange='go()'>
<?php

$rs=mysql_query("SELECT DISTINCT desg from typeproduit");
while($ligne=mysql_fetch_array($rs)){
echo"<option>".$ligne['desg']."</option>";

}


?>
</select></td>
<td width="233">produit:
<div id='produit' style='display:inline'>

</div></td>

voici le script

<script type='text/javascript'>

function getXhr(){
var xhr = null;
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;
}
return xhr;
}

/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = 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('produit').innerHTML = leselect;
}
}

// Ici on va voir comment faire du post
xhr.open("POST","ajaxproduit.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('typeproduit');
codeTypeP = sel.options[sel.selectedIndex].value;
xhr.send("codeTypeP="+codeTypeP);
}
</script>

voici le fichier de réponse

<?php
echo'<select name="produit" id="produit">';

if(isset($_POST["codeTypeP"])){
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("sbd_gestion_commerciale") or die(mysql_error());

$rs=mysql_query("SELECT DISTINCT nom from produit where codeTypeP='".$_POST["codeTypeP"]."'");
while($ligne=mysql_fetch_array($rs)){
echo"<option>".$ligne['nom']."</option>";

}
}


echo'</select>'.'</td>';
?>
merci d'avance