表格自动处理$ _POST到变量

时间:2012-08-16 11:05:50

标签: php

我的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;
    } 
}

3 个答案:

答案 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