PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 23-03-2010 22:06:09

filiplarlibe
Membre
Inscription : 23-03-2010
Messages : 6
Site Web

Pb listes déroulantes Ajax et php avec Internet Explorer

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 :

function SelectVille($idpays)
{
// créé un nouvel objet permettant d'envoyer une réponse au côté client
   $objResponse = new xajaxResponse();
   $options="";
   $db      = JFactory::getDBO();
//Requête SQL pour rechercher les villes par rapport à l'ID Pays

    $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 :

<?php
$xajax->printJavascript("components/com_auto/views/auto/xajax/");
?>
<SELECT name="pays" id="pays" onChange="xajax_SelectVille(this.value)">

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

#2 24-03-2010 07:06:41

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Pb listes déroulantes Ajax et php avec Internet Explorer

Je vois un option listeville en référence dans ton code PHP mais je ne le vois nullement dans ton code html.
Un oubli ?

Hors ligne

#3 24-03-2010 12:59:45

filiplarlibe
Membre
Inscription : 23-03-2010
Messages : 6
Site Web

Re : Pb listes déroulantes Ajax et php avec Internet Explorer

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

#4 24-03-2010 15:09:04

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Pb listes déroulantes Ajax et php avec Internet Explorer

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

Pied de page des forums