PHP表单数组
PHP神奇的表单数组
Posted on 2008/08/19 by CoCo
牛总一直劝说咱把WordPress的Links排序方法做成插件的形式。于是咱就花了一个晚上研究了一下WP的插件开发手册,然后花了几个小时做了自己的第一个WP插件:CoCo LinkSort。申请后几天,被Wordpress官方网站收录了。还可以使用他们的SVN系统来管理源代码,前台自动生成插件描述、下载、FAQ等页面,很酷。
编 码的时候遇到一个问题。WP插件的Options表单,可以定义一些表单值变量,WP直接帮我们处理、保存和修改表单提交的内容,无需自己处理任 何$_POST。但是如果我要提交的表单内容是一个动态变化的数组怎么办?例如表单是一个动态生成的inputbox列表,如何不用$_POST直接将这 些数据打包成一个数组变量传给WP呢?
突然想到了表单数组:
<input name="a[]" value="1" /><input name="a[]" value="2" /><input name="a[]" value="3" />$_POST结果为:Array( [a] => Array ( [0] => 1 [1] => 2 [2] => 3 ))那么如果这样命名表单:
<input name="a[2]" value="1" /><input name="a[5]" value="2" /><input name="a[9]" value="3" />$_POST输出结果为:Array( [a] => Array ( [2] => 1 [5] => 2 [9] => 3 ))恩恩,继续测试:
<input name="a[aa]" value="1" /><input name="a[bb]" value="2" /><input name="a[cc]" value="3" />$_POST输出结果为:Array( [a] => Array ( [aa] => 1 [bb] => 2 [cc] => 3 ))然后测试多维数组,也成功了。哇,简直太酷了!
一个动态生成的表单,不依靠Javascript,就可以将很多数据仅仅以一个数组变量的方式提交上去,解决了开发这个小WordPress插件的大麻烦。