Connaitre le bouton sur lequel on a cliqué (Formulaire)

Signaler
Messages postés
13
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
1 juillet 2008
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonsoir.
J'ai un formulaire avec deux boutons de validation et donc deux vérification.
Voici un exemple.
<?php
print_r($_POST);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test JS</title>
<script type="text/javascript">
        function verif1()
        {
                alert('verif1 réussie');
                if(4===3)
                        document.formulaire.submit();  
        }
       
        function verif2()
        {
                alert('verif2 réussie');
                if(2===2)
                        document.formulaire.submit();
        }
</script>
</head>
 

        <form id="formulaire" action="test.php" method="post" name="formulaire">
        Champ 1

        Champ 2

       
    </form>

</html>

Voila ici tout fonctionne, sauf que comme mes boutons ne sont pas des submit, je n'ai pas de $_POST correspondant. Donc niveau js, ça ne pose pas de problème mais après je ne peux pas faire de traitement adéquat car je ne sais pas quel bouton a été cliqué.
J'ai donc fait un truc comme ça:

<?php
print_r($_POST);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test JS</title>
<script type="text/javascript">
        function verif1()
        {
                alert('verif1 réussie');
                if(4===3)
                        document.formulaire.submit();  
        }
       
        function verif2()
        {
                alert('verif2 réussie');
                if(2===2)
                        document.formulaire.submit();
        }
</script>
</head>
 

        <form id="formulaire" action="test.php" method="post" name="formulaire">
        Champ 1

        Champ 2

       
    </form>

</html>

Niveau PHP, no soucis, le $_POST est bien crée donc je sais sur quel bouton j'ai cliqué. Par contre niveau JS, que la condition soit bonne ou non, il soumet le formulaire.

Comment puis je faire pour que cela fonctionne à la fois pour le js(pouvoir faire une vérif selon le bouton) et que cela fonctionne en PHP, connaitre aussi le bouton afin de pouvoir appliquer un traitement spécifique?

5 réponses

Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Salut,

Si tu veux pas que le formulaire s'envoie alors ta fonction doit retourner false (return false;).

Sinon utilise un simple bouton au lieu d'un submit.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
13
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
1 juillet 2008

J'ai essayer avec le return false sous FF, il n'en tiens pas compte:
function verif1()
{
        alert('verif1 réussie');
        if(4===3)
            document.formulaire.submit();   
        else
            return false;
}

Il soumet le formulaire dans tout les cas. J'ai essayer avec des types "bouton". Niveau JS, ça fonctionne parfaitement. Par contre niveau PHP, je ne sais pas sur quel bouton j'ai cliqué car je n'ai pas de $_POST correspondant au bouton de créé. Comment puis je faire pour que cela fonctionne à la fois en JS et en PHP?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

un bouton submit soumet le formulaire.Le comportement est normal.
Donc reprends ton code 1 et si tu veux savoir sur quel bouton on a appuyé, ajoute un champ de type caché.
Dans tes fonctions, tu donnes à ce champ una valeur arbitraire en fonction du bouton sur lequel on a cliqué, avant de soumettre.
Et c'est tout.
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Arf malalam m'a devancé (encore) j'étais en train d'écrire que moi j'utiliserais un champs hidden. Ça m'apprenderas à ouvrir la page mais ne pas répondre tout de suite, d'autres réponses arrivent sans que je les vois.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Faut pas t'en vouloir...je suis admin, donc je te suis supérieur, c'est normal. Plus rapide, plus intelligent, plus doué etc.
Donc vraiment...tu ne démérites pas, tu perds juste face à bien plus fort que toi. Aucun déhsonneur à ça.

(je sais que Yoman ne prendra pas ça au sérieux, mais je précise pour d'éventuels autres lecteurs : je PLAISANTE, hein... ;-))