Bug sous IE 7 & 8 - parfait sous FF

Signaler
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Messages postés
8
Date d'inscription
mardi 23 décembre 2008
Statut
Membre
Dernière intervention
15 mai 2009
-
bonjour
voilà j'ai un script ajax pour mettre a jour des select en fonction de la selection du select précédant, dans le cadre d'une inscription et donc du choix d'un géolocalisation (continent->pays->region.....), je l'ai fais pour un dev joomla 1.5, qui habituellement fonctionne bien mais la j'ai un truc qui doit m'échapper, car sous FF et safari il tourne impec et sous IE 7 ou 8 le select ne se remplie pas, hos si je remplace le select par un div, cela ecrit bien la liste des ville dedans (pas sous format <option> juste le texte, mais c'est normal)
je vous met les bouts de codes concernés si vous voyez un truc qui cloche pour IE je vous remercie d'avance.
je vous mets que la portion pays, le reste en decoulera.

page formulaire :

<script language='javascript'>  
 function writedivpays(texte)
{
document.getElementById('s_pays').innerHTML = texte;
}
 
function ajaxGetPays(continent_id){

if(texte = file('index.php?option=com_joomloc&task=listepays&continent_id='+continent_id))
    {
    writedivpays(texte);
   
    }
  
}

function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>

les deux select (continent qui declenche le script et le select s_pays censé recevoir les options

  <select name="s_continent" id="s_continent" onchange="ajaxGetPays(this.value)">
         <?php
       
         getContinents($this->rows->s_continent); //appel automatique des continents et affiche le bon si deja inscrit
       
         ?>
         </select>

 <select name="s_pays" id="s_pays" onchange="ajaxGetRegions(this.value)">
             <?php

getPays($this->rows->s_continent, $this->rows->s_pays); //appel automatique et affiche le bon pays et les autres dépendant du continent si deja inscrit

?>
       
         </select>

function appelée par le javasrcipt

function listepays()
  {
 
     global $mainframe;
   
     $continent_id = JRequest::getVar('continent_id');
   
     $model = $this->getModel('sites');
     $payss = $model->getPays($continent_id);
 
    
    
     $return = "<option value=''>".JText::_( '---Selectionnez un Pays---' )."</option>";
  
        foreach ($payss as $pays) {
                $return .="<option value='".$pays->id."'>".JText::_($pays->nom)."</option>";
      
      }
     
   
      echo $return;    
     
      $mainframe->close();
 
  }

voilà, quand le onclick est appelé, sous FF et safari cela remplie bien le select des options et sous FF Rien !!!

merci de votre aide si vous voyez quelques chose

Laubro

1 réponse

Messages postés
8
Date d'inscription
mardi 23 décembre 2008
Statut
Membre
Dernière intervention
15 mai 2009

Bonjour laubro,

As-tu pensé a regarder si JavaScript était activé sous IE car que sa ne marche pas avec IE7 peut-être mais c'est assez étrange sous IE8 (astuce toute bête je sais mais on en sait jamais)

Sinon je ne vois pas ce qui cloche dans ton code, peut-être dans ton foreach (mais sa c'est pour la clarté de lecture)

foreach ($payss as $pays) {
                $return .="<option value='".$pays->id."'>".JText::_($pays->nom)."</option>";
      
      }

remplace $payss (sa fait 'je code à l'arrache')

Bonne continuation