Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formulaire à deux bouton submit

champ required sur un seul des submits

Sujet résolu
    27 août 2016 à 19:33:26

    Bonsoir tout le monde,

    J'ai besoin de vos lumières.

    J'ai un formulaire avec un champ texte et un champ password ainsi que 2 boutons submit (connexion et inscription) :

        <form id="form_connect" method="post" action="../traitement/connexion-inscription_membre.php">
            <fieldset id="field_connect">
                <legend>Espace membre</legend>
                <p><label for="pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" required /></p>
                <p><label for="motdepasse">Mot de passe : </label><input type="password" name="motdepasse" id="motdepasse" required/></p>
                <p><input type="submit" name="connexion" value="connexion" /></p>
                <p><input type="submit" name="inscription" value="inscription" /></p>
            </fieldset>
        </form>

    Jusque là, tout va bien.

    Sauf que lorsque l'on veut s'inscrire, je ne souhaiterais pas que les utilisateurs aient à rentrer un mot de passe.

    Voilà donc la question : comment soumettre le formulaire en ignorant le required lorsqu'il est envoyé pas le second submit ?

    Si possible pas en JavaScript.

    Merci de vos réponses futures.

    Ursol

    -
    Edité par ybg 27 août 2016 à 19:34:54

    • Partager sur Facebook
    • Partager sur Twitter
      27 août 2016 à 19:51:37

      utilise ca pourrait peut etre taider

      <a href="nom_de_la_page"><button>Inscription</button></a>



      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        27 août 2016 à 20:21:32

        Bonjour,

        ursol a écrit:

        J'ai un formulaire avec un champ texte et un champ password ainsi que 2 boutons submit (connexion et inscription) :

        Sauf que lorsque l'on veut s'inscrire, je ne souhaiterais pas que les utilisateurs aient à rentrer un mot de passe.

        Voilà donc la question : comment soumettre le formulaire en ignorant le required lorsqu'il est envoyé pas le second submit ?

        Si possible pas en JavaScript.

        Une idée serait que lorsque ton visiteur clique sur le bouton d'inscription, tu retires l'attribut required et lorsqu'il clique sur le bouton connexion, tu ajoutes l'attribut required dans la balise qui concerne le mot de passe (j'espère que je n'ai pas mélangé, auquel cas tu auras quand même compris l'idée :lol:).

        Document de démonstration. Utilises l'inspecteur de code pour voir ce qu'il se passe dans le DOM.

        • Partager sur Facebook
        • Partager sur Twitter
          27 août 2016 à 20:43:09

          SeulSolitaire a écrit:

          utilise ca pourrait peut etre taider

          <a href="nom_de_la_page"><button>Inscription</button></a>



          Merci  pour l'idée , j'avais complètement oublié qu'il existait des bouton autre que ceux du formulaire.

          malheureusement je recupere des information a la validation du formulaire :

          <?php
          require "../config.php";
          
          // si l'utilisateur a cliqué sur le bouton connexion on exécute la fonction de connexion et on redirige vers l'accueil
          if ( (isset($_POST["connexion"])) && ($_POST["connexion"]=="connexion") ) {
              
             connexionMembre();
          
              
          }
          
              // si il a cliqué sur inscription on mémorise le pseudo tapé et le choix d'inscription et on redirige vers le formulaire d'inscription
          else if ( (isset($_POST["inscription"])) && ($_POST["inscription"]=="inscription") ) {
              
              $_SESSION["inscription"]=$_POST["inscription"];
              $_SESSION["pseudo"]=htmlspecialchars($_POST["pseudo"]);
              
              header("Location:../inscription.php");
          }
          

          donc si je fait un simple lien sur le bouton je n'est pas mes valeur de $_POST et je met un type submit j'ai le même problème qu'avec le input. en tout ça merci d'avoir répondue. et n'hésite pas si j'ai mal comprit quelque chose

          AminNairi a écrit:

          Bonjour,

          ursol a écrit:

          [...]

          Si possible pas en JavaScript.

          Une idée serait que lorsque ton visiteur clique sur le bouton d'inscription, tu retires l'attribut required et lorsqu'il clique sur le bouton connexion, tu ajoutes l'attribut required dans la balise qui concerne le mot de passe (j'espère que je n'ai pas mélangé, auquel cas tu auras quand même compris l'idée :lol:).

          Document de démonstration. Utilises l'inspecteur de code pour voir ce qu'il se passe dans le DOM.

           Fiou ! merci d'avoir prit le temps de faire tout ça !

          je ne connait pas du tout le JavaScript c'est pour cela que je cherchait une solution autre part.

          je vais faire des test avec ta solution, cela me familiarisera avec un nouveau langage.

          Merci encore !



          • Partager sur Facebook
          • Partager sur Twitter
            27 août 2016 à 20:59:33

            Bonjour,

            Loin de moi de remettre en cause ton idée de départ mais un formulaire avec 2 boutons submit n'est pas très clair pour l' utilisateur. Je pense qu'il faille revoir ta façon de procéder. En JS avec JS alors oui cela est facile, mais en l'état actuel : juste un mdp et pseudo pour une insricption me semble juste côté sécurisation et ergonomie.

            PS:  je pense avoir lu trop vite et mal répondre du coup, oublies mon message :D

            -
            Edité par pipelette13 27 août 2016 à 21:01:38

            • Partager sur Facebook
            • Partager sur Twitter
            Stéphanie, blonde mais je me débrouille (....?) ** Mon sondage: mode Dark VS mode Clean
              28 août 2016 à 11:33:30

              Merci AminNairi:)

              je n'es pas réussie a le faire fonctionné a partir du fichier principal de script inclue. l'inspecteur de cote me dit:

              TypeError: document.getElementById(...) is null

              mais en adaptant et en mettant le scrip directement dans le formulaire cela fonctionne.

                  <form id="form_connect" method="post" action="../traitement/connexion-inscription_membre.php">
                      <fieldset id="field_connect">
                          <legend>Espace membre</legend>
                          <p><label for="pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" required="required" /></p>
                          <p><label for="motdepasse">Mot de passe : </label><input type="password" name="motdepasse" id="motdepasse" required="required" /></p>
                          <p><input type="submit" name="connexion" value="connexion" id="connexion" /></p>
                          <p><input type="submit" name="inscription" value="inscription" id="inscription" /></p>
                          <script>
                              document.getElementById("inscription").addEventListener("click", removerequired);
              
                              function removerequired() {
                                  document.getElementById("motdepasse").removeAttribute("required");
                              }
              
              
                              document.getElementById("connexion").addEventListener("click", addrequired);
              
                              function addrequired() {
                                  document.getElementById("motdepasse").setAttribute("required", "required");
                              }
              
                          </script>
                      </fieldset>
                  </form>


              je ne comprend pas pourquoi cela ne fonctionne pas de la première façon, j'attendrai d'avoir faite le cours JavaScript pour résoudre se problème ^^

              merci pour tout.

              je laisse le sujet en non résolue encore quelque jour voir si quelqu'un a une solution non JavaScript

              • Partager sur Facebook
              • Partager sur Twitter
                28 août 2016 à 12:37:56

                Il faut que le chemin au fichier externe soit correcte et placé juste avant la fermeture du </body>

                Ensuite pour ce type de fonctionnalité, le JS ne doit servir que pour améliorer l'ergonomie et l'information à l'utilisateur mais en aucun être le contrôle du formulaire, celui-ci doit être fonctionnel en HTML si le JS de l'utilisateur est désactivé.

                Sinon juste une idée, pour supprimer le required sur le champ "mdp" tu pourrais en créer un autre du genre : confirmer le mot de passe. Reste à tester l'égalité côté serveur et tu n'es plus ennuyé avec le required.

                -
                Edité par pipelette13 28 août 2016 à 12:41:50

                • Partager sur Facebook
                • Partager sur Twitter
                Stéphanie, blonde mais je me débrouille (....?) ** Mon sondage: mode Dark VS mode Clean
                  28 août 2016 à 14:09:06

                  pipelette13 a écrit:

                  Il faut que le chemin au fichier externe soit correcte et placé juste avant la fermeture du </body>


                  normalement c'ets bon

                  pipelette13 a écrit:

                  Ensuite pour ce type de fonctionnalité, le JS ne doit servir que pour améliorer l'ergonomie et l'information à l'utilisateur mais en aucun être le contrôle du formulaire, celui-ci doit être fonctionnel en HTML si le JS de l'utilisateur est désactivé.

                  oui après avoir réfléchie je n'est pas mit ,par default, le required sur le mot de passe . Comme ça, si pas de JS il est redirigé vers le formulaire complet d'inscription ou il n'arrive pas a se connecté si il n'a pas rentré de mots de passe

                  pipelette13 a écrit:

                  Sinon juste une idée, pour supprimer le required sur le champ "mdp" tu pourrais en créer un autre du genre : confirmer le mot de passe. Reste à tester l'égalité côté serveur et tu n'es plus ennuyé avec le required.



                  oui de toute façon il y a une comparaison faire coté serveur avant de connecté le client .

                  merci pour toute tes suggestions !

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Formulaire à deux bouton submit

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown