求助:php怎样通过匹配表单名的部分字符串来获取相应表单的值?
问题可能听着有点绕。
就是我的表单页面个表单个数是不定的,因为有增加表单的按钮,用户可以通过按这个按钮来增加表单个数,而表单的名字我是把它做了一个 ”前缀+递增数字“ 的形式, 比如 ”array_1“, "array_2", 但是具体多少个是不定的,因为要看用户增加了多少个表单,所以,我现在要把所有的带 array_ 前缀的所有表单的值,放到一个数组里面,怎么实现呢? 关键问题是不表单的个数是未定的。
新手学习,不知道把问题描述清楚了没,先谢过了
------解决方案--------------------是增加表单 还是增加表单元素
你一个页面内有N个表单?
如果确实是有多个表单,我目前是用jquery动态地获取所有的表单值,然后将其传入后台
var postData="";
$.each($("from"),function(i, n){
postData += $(n).serialize();
});
//通过ajax传到后台.
------解决方案--------------------本帖最后由 xuzuning 于 2013-12-28 16:32:56 编辑
不存在多个表单,只存在多个表单变量
foreach(preg_grep('/array_/', array_keys($_POST)) as $k) {
res[$k] = $_POST[$k];
}
$res 就是你需要的结果
其实你不是命名为 array_数字,而是命名为 array[] 就不需要那么麻烦了
------解决方案--------------------将同一组元素的name定义成数组即可,如下:
<input type='text' name='array[]' >
<input type='text' name='array[]' >
.........
php 接收就是
print_r($_POST['array']);
------解决方案--------------------<input type='text' name='array['a1']' >
<input type='text' name='array['a2']' >
print_r($_POST['array']['a1']);
print_r($_POST['array']['a2']);
这样才可以区分input值