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 : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    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...

  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 : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    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"]);

  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 : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    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); }
       }
    }

  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, 21h09
  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, 11h34
  3. validation de formulaire avec ajax
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 25/01/2008, 15h01
  4. [AJAX] traiter un formulaire avec ajax
    Par Henry9 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2007, 12h25
  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, 09h59

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