求助:php怎样通过匹配表单名的部分字符串来获取相应表单的值?

WBOY
풀어 주다: 2016-06-23 14:40:13
원래의
911명이 탐색했습니다.

问题可能听着有点绕。
就是我的表单页面个表单个数是不定的,因为有增加表单的按钮,用户可以通过按这个按钮来增加表单个数,而表单的名字我是把它做了一个 ”前缀+递增数字“ 的形式, 比如 ”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[] 就不需要那么麻烦了

不存在多个表单,只存在多个表单变量

foreach(preg_grep('/array_/', array_keys($_POST)) as $k) {  res[$k] = $_POST[$k];}
로그인 후 복사
로그인 후 복사
로그인 후 복사

$res 就是你需要的结果

其实你不是命名为 array_数字,而是命名为 array[] 就不需要那么麻烦了

感谢,如果命名是array[]的话怎么做?

是增加表单 还是增加表单元素

你一个页面内有N个表单?

如果确实是有多个表单,我目前是用jquery动态地获取所有的表单值,然后将其传入后台

var postData="";$.each($("from"),function(i, n){    postData += $(n).serialize();});//通过ajax传到后台.
로그인 후 복사
로그인 후 복사

感谢,我说得有问题,是多个表单元素,就是多个input标签,不是多个表单

多个表单input标签,通过name属性区分变量即可。

将同一组元素的name定义成数组即可,如下:


.........

php 接收就是
print_r($_POST['array']);

将同一组元素的name定义成数组即可,如下:


.........

php 接收就是
print_r($_POST['array']);

原来可以这样,这样方便,受教受教,多谢了!




print_r($_POST['array']['a1']);
print_r($_POST['array']['a2']);

这样才可以区分input值

不存在多个表单,只存在多个表单变量

foreach(preg_grep('/array_/', array_keys($_POST)) as $k) {  res[$k] = $_POST[$k];}
로그인 후 복사
로그인 후 복사
로그인 후 복사

$res 就是你需要的结果

其实你不是命名为 array_数字,而是命名为 array[] 就不需要那么麻烦了
jordan102 版主大大回答了我这个问题,还是万分感谢

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿