Bug sous IE 7 & 8 - parfait sous FF

laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 14 avril 2009 à 02:11
cs_pop59 Messages postés 8 Date d'inscription mardi 23 décembre 2008 Statut Membre Dernière intervention 15 mai 2009 - 17 avril 2009 à 15:55
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

cs_pop59 Messages postés 8 Date d'inscription mardi 23 décembre 2008 Statut Membre Dernière intervention 15 mai 2009
17 avril 2009 à 15:55
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
0
Rejoignez-nous