Euh, plusieurs erreurs, mais bon, c'est vrzai que je ne rentre pas dans le détail non plus.
Un peu d'explications :
déjà la boucle :
foreach($extrafields->attribute_label as $key=>$label)
parcoure tous les champs que tu as. Donc, de ce que tu as voulu faire, pour chaque champ de ton formulaire : si le champ "options_pop" existe et est vide, tu affiche une erreur.
Ce qui aura pour conséquence, si ton champ obligatoire est vide, d'afficher un message d'erreur en face de tous tes champs. Je doute que c'est ça que tu veux.
Toi tu veux un message en face de ton champs.
Donc, dans un premier temps, il faut que tu l'identifie dans ton parcours de boucle :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
foreach($extrafields->attribute_label as $key=>$label)
{
$value=(isset($_POST["options_".$key])?$_POST["options_".$key]:'');
print "<tr><td>".$label.'</td><td colspan="3">';//affiche popu colspan= espacement entre colonnes
print $extrafields->showInputField($key,$value);//affiche zone de texte
print '</td>';
// identification de ton champ (en création)
if($key=="pop")
{
// ensuite, tu vérifie si une valeur t'a été retournée pour ton champ
// Note : j'ai remplacé $_POST par $_REQUEST parce que $_REQUEST contient $_POST, $_GET et $_COOKIE
if(!isset($_REQUEST["options_pop"]) || $_REQUEST["options_pop"]=="")
{
print '<td>erreur</td>';
}
}
print '</tr>'."\n";
} |
Voila, sinon les autres erreurs :
sur ta condition if :
if(isset($_POST["options_pop"]) && $_POST["options_pop"] ="")
Elle veut dire : est ce que l'utilisateur a bien envoyé une donnée pour "options_pop" et je met la valeur "" (chaine vide) dans $_POST["options_pop"].
Première erreur évidente : il faut mettre deux signe égal (==) pour faire une comparaison. Sinon, un seul, c'est une affectation.
Deuxième semi-erreur. Tu vérifie que "options_pop" existe. Mais il peux ne pas exister et il faudrait mettre une erreur aussi.
Donc moi, j'ai choisis la condition :
if(!isset($_REQUEST["options_pop"]) || $_REQUEST["options_pop"]=="")
Qui peut être traduite en :
Est ce que $_REQUEST["options_pop"] n'existe pas, dans le cas contraire on regarde si $_REQUEST["options_pop"] est vide.
En effet, dans les conditions OU si la première partie de la condition est vraie, on évalue pas la suite.
Bon, j'espère que t'es pas trop embrouillée. Important, ne pas confondre le champ HTML que tu génère via le script et la valeur que tu récupère via $_REQUEST["options_pop"]
Partager