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

AJAX Discussion :

[AJAX] Onchange dans un <select> ne lance pas mon script


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 29
    Points : 29
    Points
    29
    Par défaut [AJAX] Onchange dans un <select> ne lance pas mon script
    Bonjour,

    J'ai un petit souci avec mon script.

    Lorsque je sélectionne une valeur dans la liste déroulante, un "onchange" doit m'afficher le résultat en dessous dans un textarea via mon javascript.

    Seulement rien ne se passe. Au debugeur (firebug), le script apparait bien dans ma page. J'ai mis un point d'arret au début du script mais la fonctionne ne semble pas réagir au onchange... J'ai également essayé avec un onclick (que j'ai effacé, normal qu'il n'apparaisse pas dans le code) sur le button en fin de page, mais même résultat, aucune réaction du script dans le debug...

    Voici mon javascript :

    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
    var requete;
    function valider(){
        var pays = document.getElementById("pays");
        var duree = document.getElementById("duree");
        var url = "ResultatInterro?duree=" + escape(duree.value) + "&pays=" + escape(pays.value);
        if (window.XMLHttpRequest){
            requete = new XMLHttpRequest();
        }
        else if (window.ActiveXObject){
            requete = new ActiveXObject("Microsoft.XMLHTTP");
        }
        requete.onreadystatechange = majIHMtxt;
        requete.open("GET", url, true);
        requete.send(null);
    }
     
    function majIHMtxt(){
        if (requete.readyState == 4){
            if (requete.status == 200){
                incrustation = document.getElementById("corps");
                incrustation.innerHTML = requete.responseText;
            }
        }
    }
    Le .jsp "Interro.jsp" dans lequel il y a la liste déroulante (avec onchange ligne 51)

    Code html : 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
    42
    43
    <%@page import="java.util.Vector" %>
    <%@page import="modele.Pays" %>
    <%@page import="modele.Region" %>
    <%@page import="modele.Duree" %>
     
    <script type="text/javascript" src="Js/TitreAjax.js" ></script>
            <article>
            <h1 id="titre">- <em>Consultation des titres</em> -</h1>
            <form method="get" action="">
              <p>
                <label id="lp" for="pays">Sélectionnez un pays :</label>
                <%  Vector<Pays> listePays = ( Vector<Pays> )session.getAttribute("listePays"); 
                out.println("<select name=\"pays\" id=\"pays\">");
                out.print( " <option value=\"0\">Choisissez un pays</option>");
                for( Pays p : listePays ){
                    out.print( " <option value=\""+ p.getPays_nom() +"\" >" + p.getPays_nom() + "</option>" );
                }
                out.println("</select>");%>
              </p>
              <p>
                <label id="lp" for="regions">Sélectionnez une région :</label>
                <%  Vector<Region> listeRegions = ( Vector<Region> )session.getAttribute("listeRegions"); 
                out.println("<select name=\"regions\" id=\"regions\">");
                out.print( " <option value=\"0\">Choisissez une région</option>");
                for( Region r : listeRegions ){
                    out.print( " <option value=\""+ r.getReg_nom() +"\" >" + r.getReg_nom() + "</option>" );
                }
                out.println("</select>");%>
              </p>
              <p>
                <label id="lp" for="Duree">Sélectionnez une durée minimale :</label>
                <%  Vector<Duree> listeDuree = ( Vector<Duree> )session.getAttribute("listeDuree"); 
                out.println("<select name=\"duree\" id=\"duree\" onchange=\"valider()\">");
                out.print( "<option value=\"0\">Durée</option>");
                for( Duree d : listeDuree ){
                    out.print( " <option value=\""+ d.getTit_duree() +"\" >" + d.getTit_duree() + " minutes" + "</option>" );
                }
                out.println("</select>");%>
              </p>
              <p id="button">
                <input type="button" value="Valider" id="valider">
              </p>
            </form>

    Voyez-vous le souci ?
    Merci d'avance pour votre aide !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    T'as essayé avec des cotes/cottes/cot (je ne sais pas exactement comment ça s'écrit mais ça ressemble à ça : ' ) au lieu des guillemets?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Je vais essayer mais normalement c'est bien des doubles côtes !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Simples ou doubles quotes, ça ne change rien.

    Déjà, merci de lire Important : Les règles incontournables d'utilisation de ce forum : le code serveur ne nous intéresse pas, c'est le code HTML généré dans le navigateur qui est important !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Désolé pour le code ! Je saurai la prochaine fois !

    Pour mon souci, il est résolu ! C'était bien les doubles quotes ! J'ai mis de simple quotes et ça marche ! Plutôt bizarre...

    Merci M4arm en tous cas, j'ai passé une bonne partie de l'après-midi d'hier à chercher et j'aurai surement passé la matiné encore !!

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Dans ce cas, c'est que tu avais un problème d'échappement quelque part, ce que précisément, l'inspection du code HTML généré aurait pu détecter immédiatement.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Après test, il apparait en effet que les doubles quotes ou simples quotes ne change rien. L'erreur viendrait d'un conflit entre le nommage de ma fonction valider() et de l'id de mon <input type="button"> qui était "valider".

    En gros ça sa passe pas :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Valider" id="valider" onclick="valider()">
    Mais ça sa passe :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Valider" id="envoi" onclick="valider()">

    Donc avoir une fonction () qui s'appelle pareil qu'un id crée un conflit ?

    Merci pour vos aides !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. crontab ne lance pas mon script
    Par cyberio dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 21/07/2009, 16h42
  2. [AJAX] test dans un select avec onchange
    Par stomerfull dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/01/2009, 16h08
  3. L'évènement onclick ne lance pas mon script
    Par beegees dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 02/10/2008, 11h49
  4. onChange dans un select
    Par nebule dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/12/2007, 11h19
  5. onchange dans un select
    Par n@n¤u dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2006, 13h57

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