21-03-2014, 01:14 PM
Salut,
Un input hidden me semble approprié. Ajoute un champ caché à chaque formulaire indiquant de quel type de formulaire il s'agit (ou indiquant le type de "commande" associée au formulaire, si on veut faire plus explicite encore):
Chaque formulaire de la page se voit ainsi doté d'un champ caché (non visible par l'utilisateur), qui définit la commande que ce formulaire exécute.
Attention: ne te base pas sur la commande pour en déduire que tous les champs associés sont valides Exemple:
Un input hidden me semble approprié. Ajoute un champ caché à chaque formulaire indiquant de quel type de formulaire il s'agit (ou indiquant le type de "commande" associée au formulaire, si on veut faire plus explicite encore):
Chaque formulaire de la page se voit ainsi doté d'un champ caché (non visible par l'utilisateur), qui définit la commande que ce formulaire exécute.
<form...>
<input type="hidden" name="commande" value="creer-personnage"/>
</form>
...
<form...>
<input type="hidden" name="commande" value="ajouter-item"/>
</form>
Attention: ne te base pas sur la commande pour en déduire que tous les champs associés sont valides Exemple:
<form ...>
<input type="hidden" name="commande" value="changer-numero"/>
<input type="number" name="nombre" value="0"/>
</form>
if (isset($_POST['commande'])
{
/*
// NON!
if ($_POST['commande'] == "changer-numero")
{
echo('Vous avez choisi le nombre '.$_POST['nombre']);
// Rien ne garanti que "nombre" est défini
// rien ne garanti non plus que c'est un nombre!
}
*/
// OUI
if ($_POST['commande'] == "changer-numero")
{
if (!isset($_POST['nombre'] or !is_numeric($_POST['nombre']))
throw new Exception('Formulaire invalide!');
echo('Vous avez choisi le nombre '.(double)$_POST['nombre']);
// le test précédent assure que "nombre" existe, et que c'est un nombre
// le cast affichera la valeur entière de ce nombre.
}
}