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] Ajax Post


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut [AJAX] Ajax Post
    Bjr,
    J'aurai voulu savoir comment faire pour envoyer une variable via Ajax a ma page .jsp ?

    Voilà une partie de mon code qui m'envoie la variable! enfin je crois !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    xhr.open("POST","ajax1.jsp",true);
    var data = "ville="+strg;
    xhr.send(data) ;
    Dans mon jsp je fais comment pour recuperer ma variable ? ? ?

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut Re: Ajax Post
    Citation Envoyé par stela86
    Dans mon jsp je fais comment pour recuperer ma variable ? ? ?
    Comme d'hab, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%=request.getParameter('ville')%>
    Par exemple.... Question J2EE beaucoup plus que Javascript pour le moment.

  3. #3
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    en fait j'ai décidé de passer mon parametre par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","ajax1.jsp?ville=maville",true);
    le probleme c'est qu'en passant par cette fonction je n'afficher rien mais si j'ouvre ma page ajax1.jsp directement dans l'url comme par exemple ajax1.jsp?ville=maville , il m'affiche bien ma ville!

  4. #4
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par stela86
    en fait j'ai décidé de passer mon parametre par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","ajax1.jsp?ville=maville",true);
    le probleme c'est qu'en passant par cette fonction je n'afficher rien mais si j'ouvre ma page ajax1.jsp directement dans l'url comme par exemple ajax1.jsp?ville=maville , il m'affiche bien ma ville!
    Euh, c'est à dire? La tu nous montre juste l'appel. Si tu veux qu'on parle de l'affichage, il faut que tu nous montre la ou tu l'affiches....

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut Idee comme ca :
    Une idée qui me vient comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.send("?ville=" + ville);
    Fremy

  6. #6
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    Ohhhhhlaa !!

    Je suis peut etre con ... mais ajax c'est pas pr dialogue de manière asynchrone avec le serveur ??? (enfin moi c'est comme ca q je l'utilise) et donc du coup pq appeler une JSP ?? (moi c'est plus des servlets que j'appelle!)

    qq'1 peut eclairer ma lanterne ??

  7. #7
    Membre confirmé Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    Comment l'utilise tu ? Peux tu donner un exemple de se que tu fais ?

  8. #8
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    // Envoi une requete avec les données passées en parametre
        function sendRequest(data){
            // Récupère une HttpRequest
            var http_request = getHttpRequest(); 
     
            if (!http_request){
                // Requete impossible
                alert("XMLHttpRequest non supporté par votre navigateur Internet");
                return 0;
            }
     
            // Faire la requete AJAX
            //-------------------------------
            // 1 - Appel de la fonction de retour
        // 2 - Open(mode, url, boolean)
        //   -> mode: type de requête, GET ou POST
            //   -> url: l'endroit ou trouver les données, un fichier avec son chemin sur le disque.
            //   -> boolean: true (asynchrone) / false (synchrone).
           // 3 - Ne pas oublier ça pour la methode POST
            // 4 - Effectue la requête en envoyant les données :       
     
        http_request.onreadystatechange = function() { onResult(http_request); };
            http_request.open('POST', "<NOM DE LA SERVLET>", true);
            http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            http_request.send(data); // Format -> var1=truc&var2=bidule
        }
     
     
        // Fonction appelée qd la requete est finie
        function onResult(http_request) {
            if (http_request.readyState == 4) {        /* 4 : état "complete" */
                if (http_request.status == 200) {         /* 200 : statut OK"     */
     
                            // TODO
     
                            }
            }
        }
     
     
        // ------------------------------------ Fonction AJAX ------------------------------------------------------
        // Donne une instance HttpRequest selon le navigateur (renvoie HttpRequest ou false si pb)
        function getHttpRequest() {
            var http_request = false;
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                }
            } else if (window.ActiveXObject) { // IE
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
     
            if (!http_request) {
                alert('Impossible de créer une instance XMLHTTP');
            }
            // Soit false si pb soit l'objet http_request
            return http_request;
        }

  9. #9
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par _beber85
    if (http_request.status == 200) { /* 200 : statut OK" */

    // TODO

    }
    Euh, en l'occurence, tout est là. Il faut faire le TODO, sinon, ça ne fait rien....

    Explication sur Ajax demain dans la

  10. #10
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    lol bah telle que je l'ai compris, la question etait comment appeler la servlet

    bah sinon apres dans le TODO ... ca depend de ce qu'il veut faire... moi en l'occurence je recupère un doc XML et je l'affiche avec une feuille XSL

  11. #11
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    pour ce qui est de recupere la variable envoyée en POST dans la jsp, il faut faire comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, IOException {
     
            // Récupère la variable
            String maVar = req.getParameter("var1");
     
            ...
    }

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Par défaut
    Euh la question que je me pose en voyant tout ca, c'est pourquoi passer par un post plutot qu'un get si de toute façons il faut se tartiner les variables à concaténer à la main ?


    N'y a-t-il pas moyen de soumettre un formulaire en ajax de la meme manière qu'un formulaire classique ? donc ne pas spécifier de parametres et récupérer ses valeurs par les noms de champs ?

    Serait-il possible d'uploader un fichier de cette facon ? Et de permettre donc à l'utilisateur de continuer sa visite durant l'upload ?

    Merci d'avance pour vos éclaircissements

  13. #13
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    je passe par un POST car ca m'evite de me poser la question de la longueur de l'url ... car elle est limité et par conséquent si tu as trop de parametre tu peux rencontrer des pbs (que tu evites avec le POST ! )

    Sinon en ce qui concerne une soumission simplifié, je ne sais pas et enfin, qd tu parles d'UL d'un point de vue serveur ou client ??

  14. #14
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par narnou
    N'y a-t-il pas moyen de soumettre un formulaire en ajax de la meme manière qu'un formulaire classique ? donc ne pas spécifier de parametres et récupérer ses valeurs par les noms de champs ?
    Ca on peut pas. Enfin, on peut, mais rien n'est prévu pour le faire de façon complétement automatique. Ceci dit, un simple getElementsByTagName('input') sur ton formulaire te fait déjà 90% du travail...


    Citation Envoyé par narnou
    Serait-il possible d'uploader un fichier de cette facon ? Et de permettre donc à l'utilisateur de continuer sa visite durant l'upload ?
    On peut:
    http://www.15seconds.com/issue/010522.htm

    Mais c'est pas complétement evident...

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Par défaut
    Citation Envoyé par denisC
    Ca on peut pas. Enfin, on peut, mais rien n'est prévu pour le faire de façon complétement automatique. Ceci dit, un simple getElementsByTagName('input') sur ton formulaire te fait déjà 90% du travail...
    Yep, a la manivelle donc, optimisée la manivelle, d'accord, mais à la main quand meme


    Citation Envoyé par denisC
    On peut:
    http://www.15seconds.com/issue/010522.htm

    Mais c'est pas complétement evident...
    Si déja on peut c'est bien
    Après si c'est pas évident, bah on s'arrangera pour y arriver quand meme le jour ou on en aura besoin


    bref, merci bien denisC pour ces réponses claires et précises

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

Discussions similaires

  1. Données venant d'ajax non postées
    Par senacle dans le forum Langage
    Réponses: 12
    Dernier message: 31/12/2008, 16h12
  2. [MooTools] Envoyer des données XML en Ajax en POST
    Par gannher dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 17/06/2008, 14h03
  3. [AJAX] Envois de valeur en POST
    Par lermit dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/12/2007, 21h27
  4. Réponses: 1
    Dernier message: 22/01/2007, 20h33
  5. [AJAX] Methode post remplace + par espace
    Par dgedge dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/07/2006, 09h09

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