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 :

Soumettre deux formulaires dans la même fonction.


Sujet :

JavaScript

  1. #1
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut Soumettre deux formulaires dans la même fonction.
    Bonjour,

    J'ai deux formulaires dans une page et j'ai besoin de récupérer les valeurs des deux formulaires.
    Seulement quand on soumet le premier ça n'envoie pas les valeurs du second et vice-versa.

    J'ai essayé de combiner deux submit(); l'un à la suite de l'autre, mais ça n'envoie que les valeurs de la seconde déclaration.

    Je ne peux pas tout mettre dans le même formulaire étant donné que ce sont deux modules différents inclus dans une même page.

    Une idée ?

    Merci. =)

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Et bien, 1) fusionne tes 2 form
    2), lors de tel ou tel submit, change le parametre action du formulaire (ou pas justement)

    Tu devrais pouvoir récuperer les valeurs que tu veut en te creusant un peut

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par jac3n
    Et bien, 1) fusionne tes 2 form
    Citation Envoyé par Bisûnûrs
    Je ne peux pas tout mettre dans le même formulaire étant donné que ce sont deux modules différents inclus dans une même page.
    Citation Envoyé par jac3n
    2), lors de tel ou tel submit, change le parametre action du formulaire (ou pas justement)
    Les données sont envoyées en POST sur le clic d'un bouton radio du premier formulaire. Donc changer l'action ne servirait à priori à rien, à moins que je ne me trompe.

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    ouvre 1 autre fenetre!
    utilise des frames
    ajax

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Il va pas se compliquer avec le ajax

    Fait donc voir ton code source pliz =)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    C'est comme ça que tu veux faire?
    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
     
    <form name="form1" id="frm1">
    <input TYPE="text" name="text1" />
    <input TYPE="radio" name="soumettre" onClick="if(this.checked==true){envoyer()}" />
    </form>
     
    <form name="form2" id="frm2">
    <input TYPE="text" name="text2" value="form2" />
    </form>
     
     
    <script language="javascript">
    function envoyer() {
    document.location = "page.html?valeur1=" + document.form1.text1.value + "&valeur2=" + document.form2.text2.value
    }
    </script>

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    @Lerin : Non, mes valeurs sont passées en POST et non en GET. Sinon ça aurait été effectivement plus simple.

    @jac3n : Pour simplifier, voilà ce que j'avais tenté de faire :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="" method="post" name="form1">
       <input type="text" value="<?=$_REQUEST['champ1']?>" name="champ1" id="champ1" />
       <input type="button" value="ok" onclick="soumettre()" />
    </form>
     
    <form action="" method="post" name="form2">
       <input type="text" value="<?=$_REQUEST['champ2']?>" name="champ2" id="champ2" />
    </form>

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function soumettre(){
       document.forms[0].submit();
       document.forms[1].submit();
    }

    Mais évidemment ça ne fonctionne pas, il n'y en a qu'un seul envoyé, le dernier.


    J'ai résolu mon problème, mais il y a sans doute moins compliqué ... :

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function fusion(form1){
       var newInput = document.createElement('input');
       newInput.type = document.getElementById('champ2').type;
       newInput.name = document.getElementById('champ2').name;
       newInput.value = document.getElementById('champ2').value;
       newInput.style.display = "none";
       form1.appendChild(newInput);
    }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form action="" method="post" name="form1" onsubmit="fusion(this)">
       <input type="text" value="<?=$_REQUEST['champ1']?>" name="champ1" id="champ1" />
       <input type="submit" value="ok" />
    </form>
     
    <form action="" method="post" name="form2">
       <input type="text" value="<?=$_REQUEST['champ2']?>" name="champ2" id="champ2" />
    </form>
     
    <? print_r($_REQUEST); ?>

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

Discussions similaires

  1. deux formulaires dans la même jsp
    Par safa baccouche dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/06/2011, 17h18
  2. [1.x] symfony : inclure deux formulaires dans la même page
    Par kari.mourad dans le forum Débuter
    Réponses: 1
    Dernier message: 27/03/2011, 04h33
  3. Envoie de deux formulaires dans le même email.
    Par michab18 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/10/2009, 22h41
  4. Deux formulaires dans la même page IE7
    Par antow42 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/03/2009, 11h29
  5. Deux submit dans un même formulaire
    Par hawaks dans le forum Langage
    Réponses: 3
    Dernier message: 21/04/2006, 15h12

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