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] Poster un formulaire avec AJAX


Sujet :

AJAX

  1. #1
    Membre habitué Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Points : 179
    Points
    179
    Par défaut [AJAX] Poster un formulaire avec AJAX
    Salam,
    J'ai une page qui contient bcp d'informations ,ainsi qu'un formulaire , ce formulaire poste ces informations à une page qui fait un petit traitement ,
    Est ce qu'il ya une methode pour poster un formuaire par AJAX?

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Ben pas vraiment...
    Tu as bien form.elements que tu peux enumerer pour en obtenir les valeurs mais ca n'envoie pas les fichiers...
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  3. #3
    Membre habitué Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Points : 179
    Points
    179
    Par défaut
    Salam,
    Est ce que vous pouvez m'expliquer d'avantage ?

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    A la volée, des correction doivent peut-être être apportées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getDataFromForm(Form) {
        var data=""
        for (key in Form.elements) {
            data+=escape(key)+"="+escape(Form.elements[key].value)+"&";
        }
        return data.substr(0, data.length-1);
    }
     
    // utilisation, ne marche pas avec les input file
    xhr.send(getDataFromForm(document.forms["NAME"]);
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  5. #5
    Membre habitué Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Points : 179
    Points
    179
    Par défaut
    Salam,
    Ok merci FremyCompany !

  6. #6
    Membre habitué Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Points : 179
    Points
    179
    Par défaut
    Salam,
    mais plutôt voila le bon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function getDataFromForm(Form) {
        var data="";
        var key=0;
        for (key=0;key<Form.elements.length;key++) {         
             data+=escape(Form.elements[key].name)+"="+escape(Form.elements[key].value)+"&";
        }
        return data.substr(0, data.length-1);

  7. #7
    Membre habitué Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Points : 179
    Points
    179
    Par défaut
    Salam,
    mais il me reste comme même un petit problème : il y'a un <select> dont l'attribut value me donne une chiane vide même si je choisis une ligne non vide ?

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Et comme ca ?
    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
    function getDataFromForm(Form) {
        var data="";
        var key=0;
        for (key=0;key<Form.elements.length;key++) {      
             var currentValue=(Form.elements[key].tagName.toLowerCase()=="select")?getSelectValue(Form.elements[key]):Form.elements[key].value
             data+=escape(Form.elements[key].name)+"="+escape()+"&";
        }
        return data.substr(0, data.length-1);
    }
     
    function getSelectValue(select) {
       var value="";
       for (var i=0; true; i++) {
          if (select.option[i]) {
             if (select.options[i].selected) {
                value += select.options[i].value + ",";
             }
          } else {return value.substr(0, value.length-1); }
       }
    }
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  9. #9
    Membre habitué Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Points : 179
    Points
    179
    Par défaut
    Salam,
    Le prolème etait dans l'attribut value que j'ai précisé !
    Merci encore une fois FremyCompany .

    [edit] Oui votre code aussi marche bien FremyCompany !

  10. #10
    Membre à l'essai
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour à tous

    Désolé de déterrer ce vieux post, mais j'ai un petit pb relatif a ce sujet :

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [...]
    req.send(getDataFromForm(document.forms["myform"])); 
    [...]
    <form name="myform" method="post" action="javascript:submitForm()">
       [...]
       <input name="gen" type="submit" value="Commencer" />
    </form>
    <div id="zoneajax"> </div>
    tout va bien

    Mais dans mon cas précis j'ai besoin que le formulaire soit DANS la zone qu'ajax va modifier. C-a-d que j'ai besoin de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [...]
    req.send(getDataFromForm(document.forms["myform"])); 
    [...]
    <div id="zoneajax">
      <form name="myform" method="post" action="javascript:submitForm()">
         [...]
         <input name="gen" type="submit" value="Commencer" />
      </form>
    </div>
    Hors là, ben ça marche plus car javascript ne connait plus document.forms["myform"].
    J'ai remplacé par document.GetElementById("zoneajax").forms["myform"]... sans succès.

    Une petit idée ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour, je déterre le sujet qui vient de m'être très utile, et j'ajoute ma modeste pierre à l'edifice pour obtenir quelque chose qui ressemble un peu plus a un champ $_POST qu'on a l'habitude de traiter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function getDataFromForm(Form) {
        var data=""
        for (key in Form.elements) {
            if (Form.elements[key].checked) {
                data+ = escape( Form.elements[key].name) + "=" + escape( Form.elements[key].value ) + "&";
            }
        }
        return data.substr(0, data.length-1);
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/01/2010, 22h09
  2. [AJAX] valider un formulaire avec une fonction ajax
    Par freums dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/02/2008, 12h34
  3. validation de formulaire avec ajax
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 25/01/2008, 16h01
  4. [AJAX] traiter un formulaire avec ajax
    Par Henry9 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2007, 13h25
  5. [AJAX] récupération de formulaire avec AJAX
    Par abda1000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/03/2007, 10h59

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