PHP处理大量表单字段的便捷方法
关于程序开发中的表单批量提交策略
很多时候一个表单太多的字段,如何能够高效获取表单字段,也为如何提神开发的效率和统一性?
比如一个系统的某个有26个字段,那么我用表单的名称用26个a到z的字母,
你是选择<inputtype="text"name="a">,<inputtype="text"name="a">,……,<inputtype="text"name="z">的传统形式来做吗?
但是这种情况下如果做批量数据插入就不会有那么简洁了,
因为插入或者编辑操作会是这样的语句:特别是这样长得蛋疼的SQL字符串更悲催。
$sql="INSERTkele_table(a,b,……,z)value(a='$a',b='$b',……,z='$z')";//这样写很长铁牛用省略号标示 $sql="UPDATESETkele_table(a='$a',b='$b',……,z='$z')whereid=$id";
这样子写的话挺折腾的,字符串太长
用下面一种方法更好:
要点1:对整个提交的表单字段使用数组模式。
<inputtype="text"name="setting[a]">,……,<inputtype="text"name="setting[z]">
要点2:
PHP后台程序通过POST接收$setting数组
要点3:
插入表单字段展示
$fields=array('a','b',……,'z');//这个是特意设置校验字典,校验提交的字段是否存在 foreach($settingas$k=>$v){ if(in_array($k,$fields)){$sqlk.=','.$k;$sqlv.=",'$v'";} } $sqlk=substr($sqlk,1); $sqlv=substr($sqlv,1); $sql="INSERTINTOkele_table($sqlk)VALUES($sqlv)";
更新表单字段展示
$sql=''; foreach($settingas$k=>$v){ if(in_array($k,$fields))$sql.=",$k='$v'"; } $sql=substr($sql,1); $sql="UPDATEkele_tableSET$sqlWHEREid=$id";