我的FORM
中有大约40个项目,我试图为所有Name=
属性提供流程变量,而不必手动编写每个项目。我在这里遗漏了什么,导致下面的代码不起作用。 (name =“comp1”,name =“comp2”... $ comp1,$ comp2)
$en = array_merge($em, $_POST);
$valid = true;
foreach($_POST as $value) {
if(!isset($value)) {
$valid = false;
}
}
答案 0 :(得分:4)
如果$_POST
中没有某些内容,则foreach不会循环播放它。 Isset()
将始终返回true,因为foreach遍历$_POST
中的所有值。
答案 1 :(得分:3)
foreach($_POST as $k=>$val) {
//$$k = $val;
if(!isset($$k)){
echo "==NO==";
}
}
答案 2 :(得分:1)
POST将始终设置,除非您使用以下内容禁用该字段:
<input disabled="disabled"/>
如果filds没有这个属性,检查字段是否被填充的唯一方法是使用空字符串进行比较,$value == ''
这样:
foreach($_POST as $key => $value) {
if($value == '') {
$valid[$key] = false;
}else{
$valid[$key] = true;
}
}
现在你将拥有一个如下所示的数组($ valid):
var_dump($valid['field1']); //prints true, the field was filled
var_dump($valid['field2']); //prints false, the field was NOT filled