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] Click sur select alimenté par ajax plante ie


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut [AJAX] Click sur select alimenté par ajax plante ie
    Bonjour,

    J'utilise ajax depuis peu et j'ai un gros problème :
    - j'ai prévu que l'évènement onchange du select 1 mette à jour, via window.ActiveXObject, les options possibles du select 2.

    - tout marche très bien sauf que, parfois, lorsque je clique sur le select 2, ie se ferme sans préavis !

    Je n'y comprend rien. Au secours !

    Philippe

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Pgs Voir le message
    Je n'y comprend rien.
    nous pas plus, sans ton code ...

    A+

  3. #3
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut
    Bonjour,

    a) La fonction onchange du select 1 est : majmotifchoix(this)

    b) Cette fonction est définie comme suit :

    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
    function majmotifchoix(x)
    {
    var xhr_object = null;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    {
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
    }
    xhr_object.open("POST", "maj.php", true);
    xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) eval(xhr_object.responseText);}
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.send();
    }
    c) maj.php est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo 'var s=document.getElementById("motif");'; 
    echo 's.options.length=0;'; 
    $req="..."
    $dataset=mysql_db_query($base, $req, $conn);
    while ($enreg = mysql_fetch_array($dataset))
    {
    echo 's.options[s.options.length] = new Option("'.$enreg['description'].'", "'.$enreg['id'].'", false, false);'; 
    }
    }
    La fonction marche bien.

    C'est lorsque je fais un click sur le select "motif" que ça plante.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Et si tu enlèves
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    ??

    Sinon, le code HTML des objets concernés serait nécessaire.
    De plus, le code généré par maj.php serait préférable

    A+

  5. #5
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut
    Si j'enlève
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    alors mon select n'est même plus mis à jour.

    Mon problème réside plus dans l'utilistaion du select après mise à jour que dans sa mise à jour elle même.

    Je n'ai pas voulu entrer trop dans le détail, mais en fait, la liste des options du select "motif" varie en fonction de la valeur du premier select.

    Et tout celà fonctionne bien. Le problème survient aléatoirement, lorsque le select motif a été mis à jour plusieurs fois (nombre variables) suite à différents changements de valeur dupremier select.

    Le problème ne suivient pas lors de la mise à jour, mais lorsque je clique sur le select après mise à jour.

    Mon problème n'est pas facile à décrire, je m'excuse par avance si mes explications ne sont pas claires.

    Philippe

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Le problème est peut être que tu forces la longueur du select à 0 alors que tu n'as pas effectivement supprimé les options :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo 'var s=document.getElementById("motif");'; 
    echo 's.options.length=0;';
    Il faudrait donc (peut-être) auparavant supprimer les options (removeChild)

    A+

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/02/2014, 00h23
  2. Réponses: 12
    Dernier message: 11/05/2009, 10h41
  3. Requête Ajax sur éléments d'un select remplis par Ajax
    Par descurai dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/04/2009, 17h04
  4. [AJAX] Comment rafraîchir une liste déroulante alimentée par ajax
    Par lodan dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/03/2007, 09h01
  5. [AJAX] Actualisation d'une page par AJAX
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2006, 13h07

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