J'ai bien reçu ton code, merci c'est quand même plus parlant pour moi.
Effectivement il est bon et je confirme que Internet Explorer semble avoir du mal à changer le innerHTML d'un élement "select", contrairement aux "div" qui fonctionnent très bien.
Je te propose donc de tricher avec "div" ce qui permettra de faire fonctionner ton code sans problème sur tous les navigateurs.
Remplace :
<select id="liste_souscat" onchange="xajax_SelectSiege(this.value)">
</select>
Par :
<div id="liste_souscat"><select onchange="xajax_SelectSiege(this.value)">
</select></div>
Et la fonction SelectSouscat() deviendra celle-ci...
function SelectSouscat($catid)
{
$options="";
// créé un nouvel objet permettant d'envoyer une réponse au côté client
$objResponse = new xajaxResponse();
// on selectionne les sous-catégorie en fonction de l'id de la catégorie mère
$sql="SELECT annee, modele FROM yamaha WHERE annee = '".$catid."'";
$req=mysql_query($sql);
$options='<select onchange="xajax_SelectSiege(this.value)"><option value="">Choose your model</option>';
while ($souscat = mysql_fetch_array($req))
{
// on place toutes les sous-catégories dans des options valables pour la liste SELECT
$options .= '<option value="'.$souscat['modele'].'">' . $souscat['modele'] . '</option>';
}
$options .='</select>';
// l'Ajax remplacera le innerHTML (html intérieur) de la liste_souscat pour y mettre $options
$objResponse->addAssign("liste_souscat","innerHTML",$options);
// envoie la réponse en XML
return $objResponse->getXML();
}
Voilà, j'ai testé ça marche mieux