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

Développement Web en Java Discussion :

Problème avec l'évènement onClick du bouton


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut Problème avec l'évènement onClick du bouton
    Bonjour
    J'ai un bouton qui appelle une page jsp et je souhaite qu'à chaque clique du bouton appeler la page jsp mais le problème c'est que je ne veux pas que l’évènement onClick soit déclenché quand j'actualise la page jsp, chose que onClick effectue
    y a t-il une solution?
    merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Difficile de comprendre ton problème, peux-tu être plus précis ?
    Accessoirement, si tu as le code de la page...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    je suis dans la page accueil.jsp et j'ai le bouton suivant:

    <button onClick=<% p=p-3 %> name="monbouton" value="Valider" />



    La méthode qui se trouve dans le 'onClick' du bouton est appelée au chargement de la page, donc sans même que l'utilisateur ne clique dessus. ce qui est gênant lorsqu'on ne veut pas le faire
    Je ne comprend vraiment pas pourquoi, et je bloque la-dessus depuis quelques heures => à s'en arracher les cheveux !

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur d'études J2EE
    Inscrit en
    Avril 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'études J2EE

    Informations forums :
    Inscription : Avril 2009
    Messages : 82
    Par défaut
    C'est normal car ton code dans le "onClick" est un scriplet JSP qui est exécuter au moment où cette ligne de code est analysée, c'est-à-dire au chargement de ta page

    Comme je te l'ai dit dans l'autre post que tu as ouvert, c'est parce que tu ne peux pas modifier une variable JSP et impacter le reste de ta page sans réaliser ton traitement en Java, ou en Ajax.

    Donc, soit ton bouton est un submit qui soumet ton formulaire et lance un traitement Java, puis recharge ta page avec le tableau désiré, soit tu indiques une fonction JavaScript...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onClick="javascript:prevTab()" value="Previous" />
    ... qui décrémente ta valeur "op" et recharge ta page en Ajax.

    Mais c'est mon humble avis

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    Salut Dave
    J'ai essayé d'appeler une fonction JavaScript qui décrémente ma valeur "op" et recharge la page en Ajax, mais je suis bloqué là dessus depuis trois jours

    voici mon code:

    fonction 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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <script language="Javascript" type="text/javascript">
    <!--
     
    function createRequestObject() {
        var tmpXmlHttpObject;
     
        //depending on what the browser supports, use the right way to create the XMLHttpRequest object
        if (window.XMLHttpRequest) { 
            // Mozilla, Safari would use this method ...
            tmpXmlHttpObject = new XMLHttpRequest();
     
        } else if (window.ActiveXObject) { 
            // IE would use this method ...
            tmpXmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
        }
     
        return tmpXmlHttpObject;
    }
     
    //call the above function to create the XMLHttpRequest object
    var http = createRequestObject();
     
    function makeGetRequest(op) {
        //make a connection to the server ... specifying that you intend to make a GET request 
        //to the server. Specifiy the page name and the URL parameters to send
        	    alert("avant"+op);
     
        op=op-3;
    	    alert("apres"+op);
     
        //actually send the request to the server
        http.send(op);
    }
     
    function processResponse() {
        //check if the response has been received from the server
        if(http.readyState == 4){
     
            //read and assign the response from the server
            var response = http.responseText;
     
            //do additional parsing of the response, if needed
     
            //in this case simply assign the response to the contents of the <div> on the page. 
            document.getElementById('description').innerHTML = response;
     
            //If the server returned an error message like a 404 error, that message would be shown within the div tag!!. 
            //So it may be worth doing some basic error before setting the contents of the <div>
        }
    }
     
    -->
    </script>
    voici ma jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 			<a href="javascript:makeGetRequest(<%= op %>)"  style="width: 90px; position:absolute;top:380px;left:30px;">Précédent</a>

    Je peux très bien décrementer ma variable dans la fonction ajax mais j'arrive pas à récupérer le résultat dans ma page jsp, en fait dès que je sors de la fonction ajax, la variable "op" ne conserve plus le changement
    si tu peux m'aider je te serai reconnaissant.

    Pour simplifier j'ai une variable entière que je souhaite décrémenter à chaque clic de bouton.

    merci beaucoup.

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur d'études J2EE
    Inscrit en
    Avril 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'études J2EE

    Informations forums :
    Inscription : Avril 2009
    Messages : 82
    Par défaut
    Si j'ai bien compris ton problème, tu veux afficher, dans une JSP un tableau contenant des images. Ce tableau est constitué de plusieurs pages. C'est bien ça ?

    Pour commencer, tu dois t'assurer que ton appli fonctionne sans le JavaScript (c'est une bonne pratique du Web ). Pour cela, ton bouton "Précédent" doit être un submit (ou un lien) qui poste (ou get) des infos (ta valeur "op" par exemple) à un script de ton serveur (Java en ce qui te concerne), qui récupère le tableau correspondant à "op - 1" et recharge ta jsp avec les bonnes données.

    Ensuite, si ton appli fonctionne correctement mais que tu ne veux pas, à chaque fois recharger toute ta page, mais seulement la zone du tableau, tu peux utiliser le JavaScript et en particulier l'Ajax. Mais ne te lances pas là dedans si tu peux te contenter d'un rechargement global de ta jsp.

    Si tu décides quand même de faire de l'Ajax, voilà comment il devrait fonctionner :

    1. Tu captes l'event onClick sur ton bouton avec un fonction JavaScript (par exemple "getPreviousTable(op)")
    2. Ta fonction JS appelle ensuite, via Ajax, le script Java sur ton serveur qui récupère le tableau à partir de la valeur "op" courante. Ce script te renvoie les données (par exemple sous la forme d'une chaîne de caractères, ou autres)
    3. Ta fonction traite ensuite cette chaîne et reconstruit à la volée le bloc HTML désiré de ta JSP et en profite pour mettre à jour la valeur courante de "op" dans un input hidden.


    Voilà. Je pense que tu dois pouvoir réussir avec ça. Si ce n'est pas le cas, je t'encourage à suivre un tutoriel d'une mini appli Web en Java/JSP.

    Mais c'est mon humble avis

Discussions similaires

  1. [C# 2.0] Problème avec l'évènement de mon userControl
    Par manu94600 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/11/2006, 20h36
  2. problème avec le déclenchement d'un bouton
    Par boss_gama dans le forum ASP
    Réponses: 2
    Dernier message: 16/06/2006, 10h30
  3. problème avec l'événement onBlur
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2006, 11h48
  4. Erreur avec l'évènement OnClick de ListView
    Par xenos dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/03/2006, 14h54
  5. [wxpython] problème avec les événements souris
    Par kalimero dans le forum wxPython
    Réponses: 2
    Dernier message: 13/11/2005, 15h42

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