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 :

2 boutons pour 1 form


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut 2 boutons pour 1 form
    Bonjour,

    Je voudrais envoyer des informations recuperees par un input text vers deux adresses differentes qui sont associe a deux boutons

    J'ai recupere un bout de code, chaque bouton m'envoi bien vers la bonne page mais le contenu ne se retrouve pas dans la nouvelle page (le post ne fonctionne pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="javascript">
    function envoyer_form(pageTraitement) {
      document.bla.action = pageTraitement;
      document.bla.submit();
    }
    </script>
     
    <form name="bla"  action="">  
    <input type="text" id="pays" name="pays" value=""  /> 
    <input type="button" name="t" value="TRANSLATE" onClick="envoyer_form('translate.php')">
    <input type="button" name="t1"  value="STATS" onClick="envoyer_form('valide1.php')">
     
    </form>
    Merci de votre aide

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Si tu avais regardé l'url au moment de la soumission, tu aurais vu que ton formulaire est en "GET".

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il suffit de mettre l'autre bouton en disabled lors du click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    function envoyer_form(pageTraitement,source) {
      document.bla.elements[source].disabled = true;
      document.bla.action = pageTraitement;
      document.bla.submit();
    }
    </script>
     
    <form name="bla"  action="">  
    <input type="text" id="pays" name="pays" value=""  /> 
    <input type="button" name="t" value="TRANSLATE" onClick="envoyer_form('translate.php','t1')">
    <input type="button" name="t1"  value="STATS" onClick="envoyer_form('valide1.php','t')">
     
    </form>
    puis de tester coté serveur si lequel des paramètres t ou t1 a été envoyé : ce sera celui qui a été cliqué.

    Attention aussi : l'attribut language de la balise script est deprecated et inutile. En revanche, l'attribut type est required
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Ca fonctionne merci beaucoup

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Autre question peut-on définir des targets différentes?

    j'ai essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" name="t" value="TRANSLATE" onClick="envoyer_form('translate1.php','t1','target="commentaire"')">
    mais ca ne fonctionne pas

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="t" value="TRANSLATE" onclick="document.bla.target='laPage'; envoyer_form('translate1.php','t1')"/>
    Ta fonction envoyer_form n'attend que 2 paramètres.
    A+.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    genial merci beaucoup

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    Je cherche a rajouter un nouvelle fonction pour valider que tous les champs ont ete remplis avant l'envoi

    j'utilise le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <SCRIPT language=javascript>
    function verifForm() {
        if((document.bla.pays.value == "") || (document.bla.region.value == "") || (document.bla.ville.value == "") || (document.bla.adresse.value == "") || 
     
    (document.bla.nom.value == "")) {    
        alert("Veuillez renseigner tous les champs");
        return false;
       }
      else {
        return true;
      }
    }
    </script>
    maintenant je voudrais l'integrer a mon submit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form onsubmit="return verifForm();" name="bla" id="bla"  action="" > 
     
    <input type="button" name="t" value="TRANSLATE" onclick="return verifForm();document.bla.target='laPage'; envoyer_form('translate1.php','t1')"/>
    lorsque je place "return verifForm" juste apres "onclick=" il verifie bien mais meme une fois tous les champs complete il n'envoi jamais rien

    Si je place "return verifForm" en derniere position, la verification fonctionne bien mais il envoi quand meme les donnees.

    Merci de votre aide

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est un comportement normal.
    En fait, en interne, JavaScript englobe le code des événements inline (onclick="..." ici) dans une fonction anonyme.
    Donc quel que soit le résultat de la vérification, tu fais un return, ce qui stoppe l'exécution de la fonction anonyme et impacte le comportement par défaut du bouton.
    Il faut donc passer par un if (d'autant qu'un bouton n'ayant pas de comportement par défaut, ton return est en fait inutile ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="if(verifForm()){document.bla.target='laPage'; envoyer_form('translate1.php','t1');}"
    Ensuite, rien ne t'empêche d'ajouter un else pour traiter le cas où il y a des erreurs
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Super! merci Bovino pour la solution et l'explication.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/08/2014, 23h08
  2. évènement sur click pour 50 boutons d'une form
    Par timotep dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/07/2008, 11h56
  3. Réponses: 7
    Dernier message: 05/01/2007, 14h14
  4. boutons pour modifier le tri dans un form
    Par @rkane dans le forum Access
    Réponses: 2
    Dernier message: 09/09/2006, 13h27
  5. [VB.NET] Clic sur un bouton pour afficher une form existante
    Par beegees dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/06/2006, 10h31

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