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 et formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 32
    Par défaut [AJAX] Ajax et formulaire
    bonjour à tous. J'ai une petite question concernant l'envoi de formulaire via ajax.

    jai lu que l'envoi d'un formulaire se faisait ainsi
    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 init(){
        var xhr = null; 
        if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
        else if(window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
        else alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");   
        return xhr; 
    }
    function updateNews(form, response){
        var xhr= init();
        xhr.open("POST","admUpdateNews.php",true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        var datas = null //données à envoyer.
        xhr.send(datas);
    //...
    }
    le problème, c'est que je ne sais pas comment récupérer toutes les données du formulaire(il est assez long) .
    Y-a-t'il un moyen pour faire un submit() via l'objet xhr ? Ou alors, quelle est la méthode à employer ?

    En vous remerciant,

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    mulitpost
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éprouvé Avatar de lalouve
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2004
    Messages : 128
    Par défaut
    Il faut que tu mettes dans ta variable data les valeurs des elements qui constituent ton formulaire.

    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
    function init(){
        var xhr = null; 
        if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
        else if(window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
        else alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");   
        return xhr; 
    }
     
    function getFormData(form, separateur){
    var data = "";
    var form = document.getElementById(form);
    var elements = form.elements;
    for(var i=0; i<form.length; i++){
      data += elemens[i] + "=" + elements[i].value + separateur;
    }
    }
    function updateNews(form, response){
        var xhr= init();
        xhr.open("POST","admUpdateNews.php",true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     
    var data = getFormData(form);
     
    xhr.send(data);
    //...
    }
    Voilà j'ai pas testé, je t'écris ça à main levée...

    Bon courage.



    E-Spiration : soyez inspirés!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 32
    Par défaut
    Merci, et pardon pour le multipost, j'ai fait une mauvaise opération . Je sais pas si je sais l'effacer.

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    une petite correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function getFormData(form){
    var data = "";
    var form = document.getElementById(form);
    var elements = form.elements;
    for(var i=0; i<form.length; i++){
      data += elements[i].name + "=" + elements[i].value+"&";
    }
    }

  6. #6
    Membre éprouvé Avatar de lalouve
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2004
    Messages : 128
    Par défaut
    Exact ou alors remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var data = getFormData(form);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var data = getFormData(form, "&");

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    et rajouter le .name dans la fonction

    mais je vois pas l'interet de mettre un separateur variable, y a quand meme peu de chance que les normes changent non ?

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

Discussions similaires

  1. [AJAX] Validation de formulaire
    Par shaun_the_sheep dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/03/2008, 17h02
  2. [AJAX] Ajax et un formulaire(dans un div include)
    Par HWICE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/09/2007, 16h49
  3. [AJAX] Récupérer valeurs formulaires
    Par Mister Nono dans le forum Struts 1
    Réponses: 5
    Dernier message: 19/04/2007, 17h23
  4. [ajax] XMLHttpRequest et formulaire(<input type='file'>)
    Par Are-no dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 20h22
  5. [AJAX] submit file Formulaire
    Par Azanael dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/06/2006, 19h36

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