在PHP POST上将整个表单包装在数组中

时间:2015-02-18 16:41:58

标签: php arrays wordpress post

我试图将整个表单包装在一个数组中。目前看起来像:

<div class="round">
    <input name="points">
    <input name="player1[]">
    <input name="player2[]">
</div>

整个表单/ div可以复制,所以理想情况下,我会输出一个可以吐出的输出

round[0][points]
round[0][player1[0,1,2]]
round[0][player2[0,1,2]]

它需要是动态的,所以只需将round [0]添加为静态文本,然后才能完成所有工作。

我试图将所有内容都包装在一个经过试验过的字段集中,但所有内容都会失败或者发出可怕的项目顺序。

有什么想法吗?

编辑以澄清所需的输出: 毕竟说完了,我希望这是动态的,因此需要数组中的数组。复制后的输出可以是:

round[0][points]
round[0][player1[0,1,2]]
round[0][player2[0,1,2]]

round[1][points]
round[1][player1[0,1,2,3,4,5]]
round[1][player2[0,1,2,3,4,5]]

round[2][points]
round[2][player1[0,1]]
round[2][player2[0,1]]

2 个答案:

答案 0 :(得分:1)

你认为它只是在这样的点之后添加括号:

<input name="points[]">
<input name="player1[]">
<input name="player2[]">

当你去处理php时,只需使用foreach循环:

$player1 = $_POST['player1'];
$player2 = $_POST['player2'];
foreach($_POST['points'] as $i => $points){
   echo $points." ".$player1[$i]." ".$player2[$i];
}

哪个应该给你结果:

points[0] player1[0] player2[0]
points[1] player1[1] player2[1]
etc.

这应该有效(如果我理解正确的话)。

修改

好的,所以我假设玩家1&amp; player2输入值是逗号分隔的列表。如果他们是我们只需要在php中进行调整:

$player1 = $_POST['player1'];
$player2 = $_POST['player2'];
foreach($_POST['points'] as $i => $points){
   echo "Round ".$i.": "$points;
   echo "Team 1";
   $team1 = explode(",", $player1[$i]);
   foreach($team1 as $i => $player){
      echo "Player ".$i.": ".$player;
   }
   echo "Team 2";
   $team2 = explode(",", $player2[$i]);
   foreach($team2 as $i => $player){
      echo "Player ".$i.": ".$player;
   }
}

答案 1 :(得分:0)

部分回答:这会得到#34;播放器&#34;阵列进入&#34; round&#34;数组,现在我只需要弄清楚如何自动增加round [],就像我想要的那样:

 <input name="_round[0][_player1][]">

但我认为我可以使用一个计数器......尽管我讨厌多少计数器。