首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确保以特定格式获得所有$_POST数据

如何确保以特定格式获得所有$_POST数据
EN

Stack Overflow用户
提问于 2013-10-26 21:14:57
回答 1查看 58关注 0票数 0

我有一个网页,里面有一些输入。

输入在某些组中,并且全部以一种形式进行。

输入可以动态添加到页面,但所有输入都遵循一个命名规则:numberA-numberB-any。输入也可以从页面中删除。所以在最后我可能会有这样的事情:

代码语言:javascript
运行
复制
<form method="POST">
  <input name="3-1-c">

  <input name="8-2-d">
  <input name="8-3[]">
  <input name="8-3[]">

  <input name="17-2-a">
  <input name="17-2-d">
  ... a few or many other inpooots!
</form>

它们由于numberA而被分组(第2、第3和第4输入,在第8组中)

然后,在带有php的服务器端,如何创建一个循环来读取由numberA命令的所有输入(因为我应该对每个numberA及其所有子集执行一些数据库操作),而不会遗漏任何输入。

代码语言:javascript
运行
复制
while (have_groups_of_inputs(?)) { // inputs with same numberA part
  while (have_items_in_this_group(?)) {
    do_the_job();
  }
}
echo 'thanks!';

$_POST数据样本:

代码语言:javascript
运行
复制
Array
(
    [itemcount] => 4
    [formid] => 
    [title] => Your info

    [1-title] => First name
    [1-hint] => your name
    [1-eltype] => 1
    [1-1] => Array
        (
            [0] => 
        )

    [3-title] => Last name
    [3-hint] => 
    [3-eltype] => 1
    [3-1] => Array
        (
            [0] => 
        )

    [4-title] => Gender
    [4-hint] => 
    [4-eltype] => 2
    [4-0] => Array
        (
            [0] => Male
            [1] => Female
        )
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 21:46:55

嗨,您可以遍历$_POST数组并根据键对值进行分类。

代码语言:javascript
运行
复制
foreach($_POST as $key=>$value){
    $parts = explode('-', $key);
    if(isset($parts[2])){
        $groups[$parts[0]][$parts[1]][$parts[2]] = $value; 
    }else{
        if(!isset( $groups[$parts[0]][$parts[1]])){
              $groups[$parts[0]][$parts[1]] = array();
        }
        $groups[$parts[0]][$parts[1]][] = $value;
    }
}

这应该会产生一个类似于下面所示的数组

代码语言:javascript
运行
复制
{
   '3':{
       '1':{
           'c': value_for_3-1-c
       }
   },
   '8':{
       '2':{
           'd': value_for_8-2-d
       },
       '3':[
           value_for_8-3[0],
           value_for_8-3[1],
       ]
   },
   '17':{
        '2':{
            'a': value_for_17-2-a,
            'd': value_for_17-2-d
        }
   }
}

然后,如果您想遍历第8组中的每个项目

代码语言:javascript
运行
复制
foreach($groups[8] as $b=>$sub){
    foreach($sub as $key=>$value){
        echo $key . ': ' . $value; 
    }
}

将导致:

代码语言:javascript
运行
复制
d: value for 8-2-d
0: value for 8-3[0]
1: value for 8-3[1]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19611973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档