Quel est le meilleur moyen de vérifier si un formulaire a été soumis ou non pour déterminer si je dois transmettre les variables du formulaire à ma classe de validation?
D'abord j'ai pensé peut-être:
isset($_POST)
Mais cela reviendra toujours vrai comme un superglobal est défini partout. Je ne veux pas avoir à parcourir chaque élément de mon formulaire avec:
if(isset($_POST['element1']) || isset($_POST['element2']) || isset(...etc
En écrivant cette question, j'ai pensé à une solution beaucoup plus simple, en ajoutant un champ caché servant de drapeau que je peux vérifier.
Y a-t-il une façon "plus propre" de le faire que d'ajouter mon propre drapeau?
Pour vérifier s'il y a eu une action POST
, utilisez:
if (!empty($_POST))
EDIT: Comme indiqué dans les commentaires, cette méthode ne fonctionnera pas dans certains cas (par exemple avec des cases à cocher et un bouton sans nom). Vous devriez vraiment utiliser:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Que diriez-vous
if($_SERVER['REQUEST_METHOD'] == 'POST')
En fait, le bouton d'envoi exécute déjà cette fonction.
Essayez dans le formulaire:
<form method="post">
<input type="submit" name="treasure" value="go!">
</form>
Puis dans le gestionnaire PHP:
if (isset($_POST['treasure'])){
echo "treasure will be set if the form has been submitted (to TRUE, I believe)";
}
Utilisation
if(isset($_POST['submit'])) // name of your submit button
if ($_SERVER['REQUEST_METHOD'] == 'POST')
.
Essaye ça
<form action="" method="POST" id="formaddtask">
Add Task: <input type="text"name="newtaskname" />
<input type="submit" value="Submit"/>
</form>
//Check if the form is submitted
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['newtaskname'])){
}
J'ai eu le même problème - assurez-vous également que vous ajoutez name=""
dans le bouton de saisie. Eh bien, ce correctif a fonctionné pour moi.
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['add'])){
echo "stuff is happening now";
}
<input type="submit" name="add" value="Submit">