IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ajax avec 2 listes déroulantes avec Internet Explorer


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut Ajax avec 2 listes déroulantes 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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?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.

    FilipLarlbe,

    http://www.galleryaircraft.com

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu utilises quoi comme librairie ???

    ce que tu nous montre là est server side ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $objResponse->getXML();
    ta reponse est en xml ...
    on ne vois pas ou tu attribues le contenu au select à part un mystérieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objResponse->addAssign("listeville","innerHTML",$options);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Par défaut
    Bonjour,

    J'utilise xajax et pour info j'ai suivi ce tuto http://www.6ma.fr/tuto/listes+deroul...iques+ajax-301

    C'est le code Ajax qu va générer du javascript pour alimenter le select.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?php
    $xajax->printJavascript("components/com_auto/views/auto/xajax/");
    ?>
    <SELECT name="pays" id="pays" onChange="xajax_SelectVille(this.value)">
     
        <?php
            foreach ($this->rows as $row) 
            { ?>
    			<OPTION VALUE=<?php echo $row->id?> > <?php echo $row->pays ?> </OPTION>";
            <?php } ?>
     
        </SELECT>
    	Ville: <SELECT name="listeville" id="listeville">
        </SELECT><br>
    Mais je pense que le code est bon en partie mais par contre qu'il y a certainement une fonction qui n'est pas compatible avec IE.
    Sur d'autres navigateurs, je n'ai aucun problème, il n'y a qu'avec IE que ça ne marche pas.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    t'as juste pas pris le bon tuto ^^

    http://siddh.developpez.com/articles/ajax/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Liste déroulante dans internet explorer
    Par Harelde dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/01/2012, 15h52
  2. Réponses: 1
    Dernier message: 05/04/2011, 19h49
  3. [AJAX] avec 3 listes déroulantes liées php+xhtml+css+javascript+ajax
    Par Invité dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/12/2008, 15h54
  4. [AJAX] Remplir une liste déroulante avec la réponse du réquête d'Ajax
    Par duppp2000 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/12/2007, 16h28
  5. Réponses: 13
    Dernier message: 01/06/2007, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo