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

Servlets/JSP Java Discussion :

[Ajax appel d'une Jsp] Problème sauvegarde informations


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut [Ajax appel d'une Jsp] Problème sauvegarde informations
    Bonjour voila mon problème.
    En fait dans une de mes pages jsp j'ai créé un bouton sauvegarde.
    Lorsque l'on clique dessus j'aimerais pouvoir sauvegarder des informations de ma page jsp dans une base mysql, sans changer de page.

    Je ne sais pas vraiment comment faire mais on m'a conseillé le script Ajax Ci dessous qui ouvre une page jsp et devrait exécuter son contenu.

    Toutefois je ne sais pas quoi mettre du coté de ma page save.jsp.

    J'ai essayer d'y mettre un simple "out.println("coucou");" et le recupérer mais je n'y arrive pas....

    J'utilise la bonne solution ???
    Si oui ou est mon problème

    La fonction appelé lors de l'appuie du bouton est la suivante :
    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
    <script>
      function sauvegarder() {
          var xhr_object = null; 
                var data     = null; 
                var filename = "save.jsp"; 
                
                if(window.XMLHttpRequest) // Firefox 
            xhr_object = new XMLHttpRequest(); 
                else if(window.ActiveXObject) // Internet Explorer 
                    xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
                else { // XMLHttpRequest non supporté par le navigateur 
                    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                     return; 
               } 
             
        var nom=document.getElementById('Nomsave').value;
        var req=document.getElementById('mdxsave01.9').value;
        
         
             data = "nom="+nom+"&req="+req;
             alert(data);
             xhr_object.open("POST", filename, true);        
                     
              xhr_object.onreadystatechange = function() { 
            if(xhr_object.readyState == 4){
            var rep = xhr_object.responseText.split(":"); 
                            if(typeof(rep[1]) != "undefined"){      
                                    alert(rep[1]);
                            }//fin du if
                    }//fin du 2ème if
        }//fin de la fonction
       
        xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");          
        xhr_object.send(data); 
               
               
    }</script>

    Merci par avance car la je seche complétement.

  2. #2
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    J'ai essayer d'y mettre un simple "out.println("coucou");" et le recupérer mais je n'y arrive pas....
    Ta page save.jsp est appelée via Ajax...
    Tu dois la voir comme un simple script et non comme une page présentant de l'information.
    Etant donné que save.jsp n'est pas affichée dans ton browser, il est logique que tu ne voies pas ton out.println("coucou");.
    En fait, dans ta page save.jsp, tu dois récupérer tes informations de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String nom = request.getParameter("nom");
    String req = request.getParameter("req");
    Ensuite, tu dois écrire le code te permettant d'enregistrer ces informations dans ta DB MySQL...

  3. #3
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Merci aJavaDeveloper de m'avoir répondu oui je comprend un peu mieux j'arrive désormais a exécuté ma jsp Save.jsp lancée par le code AJAX, mais je n'arrive pas a récupérer le code et ceux malgres l'utilisation de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String nom = request.getParameter("nom");
    String req = request.getParameter("req");
    De plus je n'arrive pas a savoir si le traitement a bien été effecutée ou non ...C'est a dire pouvoir récupérer une valeur sur ma première page.

    Actuellement ma JSP drop une table 'test' donc j'arrive a effecuter un traitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%
    [...]
    statement.executeUpdate("DROP TABLE test;");
    [...]   
    %>
    Mais j'aimerais ajouter des champs à l'aide de ceux que j'ai envoyé.
    J'ai essayé donc de récupérer seulement le nom mais cela ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	String nom= " ";
            nom= request.getParameter("nom");
    	statement.executeUpdate("DROP TABLE "+nom+";");
    Bref si qqn peu m'aider

  4. #4
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Tu dois chercher ton problème au niveau du code Ajax qui appelle ta page save.jsp.
    L'instruction ci-dessous t'affiche-t'elle les bonnes valeurs de nom et de req :
    Sinon, tu devrais essayer de te documenter un peu sur Ajax.
    Il existe plein d'exemples de code montrant comment envoyer une requête Ajax.

  5. #5
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Et bien la valeur de mon data contenu dans l'alert est la bonne.
    En fait je ne comprend pas bien comment m'en sortir

  6. #6
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Essaie peut-être en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = "nom="+nom+"&req="+req;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = "nom="+escape(nom)+"&req="+escape(req);

  7. #7
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Fonctionne pas non plus.
    Je vais essayer avec la méthode POST et non pas GET voir si cela fonctionne mieux.

  8. #8
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Lorsque ton code Ajax est exécuté, ton browser te signale-t'il des erreurs Javascript ?

    Quel browser utilises-tu ?

  9. #9
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    J'utilise Mozilla, non il n'y a pas d'erreur mais je n'ai pas de nouveau dans ma BD.

  10. #10
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Bon je continuerai dessus demain Merci aJavadevelopper de te donner du mal et de m'ecouter

    Je me sens un peu moins seul.

  11. #11
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Bon alors tout fonctionne bien le seul problème qui me reste est que je n'arrive pas a récupérer de valeur dans ma page principale suite au traitement effectué avec Mozilla alors qu'avec IE, tout fonctionne correctement une idée ???

    en gros dans mon script AJAX et le point technique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <script>
      function sauvegarder() {
     
       [...]         
              xhr_object.onreadystatechange = function() { 
            if(xhr_object.readyState == 4){//si tout s'est bien passé
                    alert(xhr_object.responseText);//Alrt box vide avec Mozilla
                    }//fin du 2ème if
        }//fin de la fonction
        
    [...]
     
    }</script>

  12. #12
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Dans Firefox, après avoir utilisé ton script Ajax, ouvre la console d'erreurs (Tools > Error Console).
    Que t'indique cette console (pour être sûr de ne pas considérer des erreurs externes, il faudrait peut être la vider avant de lancer ton script Ajax) ?

    Ton objet xhr_object n'est peut être pas correctement créé pour Firefox...
    Voici un lien qui montre comment créer cet objet pour IE mais aussi pour Mozilla et Safari : http://www.degraeve.com/reference/si...ax-example.php.

Discussions similaires

  1. appel d'une jsp en réseau local
    Par yasinfo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/05/2009, 14h20
  2. récupérer une variable après appel asynchrone à une jsp
    Par troussepoil dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 29/08/2008, 14h07
  3. [AJAX] Appel d'une fonction dans une autre
    Par leod38 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/05/2008, 14h46
  4. Appel d'une jsp contenue dans un JAR
    Par shaun_the_sheep dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 22/09/2006, 09h37
  5. [Pl/Sql] Appel d'une jsp dans une procedure
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 7
    Dernier message: 21/04/2006, 08h13

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