[PHP & HTML] valeur nulle d'un champ de form

Fermé
veroni Messages postés 1 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 19 juillet 2007 - 19 juil. 2007 à 16:02
 mx_cman - 13 févr. 2009 à 16:46
Bonjour à tous,

Voila j'ai un petit souci avec un formulaire, pour tester les valeurs entrées dans un champ text.

J'ai créé un formulaire :

<form method="post" action="sendtest.php">
Energy kcal <input name="energy_kcal" type="text" size="15" maxlength="254">
Total fat <input name="total_fat" type="text" size="15" maxlength="254">
<input name="Test" type="submit">
// je précise qu'il y a en amont un autre formulaire à bouton radio qui influe en affichant un seul input ou deux (soit 'energy kcal' seul, soit 'energy kcal ' ET 'total fat')


mon script sendtest.php :

$energy_kcal=$_POST['energy_kcal'];
if (!isset($_POST['total_fat']))
{
$total_fat="none"; //me permet d'avoir une valeur non nulle si le champ n'a pas été demandé (cf le formulaire en amont)
}
else $total_fat=$_POST['total_fat'];
$var=array($energy_kcal,$total_fat); //en fait il y a 8 autres champs textes sur le même modèle, pour l'exemple je n'en ai pris que 2
for ($i=0;$i<sizeof($var);$i++)
{
require 'testchamps.php';
}


mon script testchamps.php :
if (empty($var[$i]))
{
echo 'Please enter a value for '.$text[$i].'<br>';
}
elseif (!is_numeric($var[$i]) && $var[$i]!='none')
{
echo 'Please enter a numeric value for '.$text[$i].' (without units)'.'<br>';
}
else
{
echo $var[$i].' --> '.$text[$i].' <br>';
}

Donc avec tout ceci (je débute en php, ce n'est peut-être pas le moyen le plus simple ni le plus propre...), j'arrive à différencier si un utilisateur n'entre pas de valeur parce qu'elle ne lui a pas été demandée (ie le champ texte pour 'total fat' n'était pas affiché).
Mais je n'arrive pas à différencier une valeur "zéro" d'une valeur vide. Je voudrais que l'utilisateur puisse entre le chiffre 0, mais qu'il ait un message d'erreur si le champ est complètement vide.

Auriez-vous une piste à me conseiller ?

Vero
A voir également:

1 réponse

J'ai le même soucis que toi. Pour entrer une valeur 0, le seul moyen que j'ai trouvé est de mettre "0". Dans ce cas, la valeur est bien différenciée de la valeur null. Mais ce n'est pas très commode :/
0