Vous n'êtes pas identifié(e).
Bonjour à tous et toutes,
J'ai un problème avec l'utilisation d'Ajax pour alimenter dynamiquement 1 liste déroulante par rapport à la sélection d'un pays d'une 1ère liste déroulante.
En fait le code que j'ai fait ne marche pas sur Internet Explorer mais par contre sur les autres ça marche.
Voici le code que j'utilise :
Code AJAX :
$select = 'v.*';
$from = '#__ville AS v';
$wheres[] = 'v.id_pays = '.$idpays;
$order = 'v.ville';
$query = "SELECT " . $select .
"\n FROM " . $from .
"\n WHERE " . implode( "\n AND ", $wheres ) .
"\n ORDER BY " . $order;
$db->setQuery($query);
$villes = $db->loadObjectList();
for($row_count=0; $row_count < count($villes); $row_count++)
{
// on place toutes les villes dans des options valables pour la liste SELECT
$options .= '<option value="'.Trim($villes[$row_count]->id).'">'.Trim($villes[$row_count]->ville).'</option>';
}
// l'Ajax remplacera le innerHTML (html intérieur) de la listeville pour y mettre $options
$objResponse->addAssign("listeville","innerHTML",$options);
// envoie la réponse en XML
return $objResponse->getXML();
}
require_once("components/com_auto/views/auto/xajax/xajax.inc.php");
$xajax = new xajax();
$xajax->registerFunction("SelectVille");
$xajax->processRequests();
?>
Code HTML pour les 2 listes déroulantes :
Voilà, il doit y avoir une fonction ou quelque chose qui n'est pas compatible avec IE mais je ne vois pas.
Est-ce que vous pouvez m'éclairer car je cherche mais je ne trouve rien.
Merci d'avance pour votre aide.
Hors ligne
C'est normal que tu ne le vois pas dans le code HTML car c'est l'ajax qui le gère. C'est la fonction onChange="xajax_SelectVille(this.value)" qui va le gèrer en exécutant le code ajax et en créant du code javascript.
Mais de toute façon, ça marche sur tous les navigateurs sauf Internet Explorer.
Hors ligne
Il faudra donc que tu te penches sur la classe xajax et non sur le code que tu utilises pour la faire fonctionner.
C'est la classe en elle même qui n'est pas prévue pour IE.
Tu ferrais mieux d'aller te renseigner sur le site de la communauté de la classe, peut être n'as-tu pas une version à jour.
Ou alors qu'ils ne prévoient aucunement un fonctionnement sous IE.
Hors ligne