将多个输入分组到$ _POST

时间:2013-03-19 12:40:02

标签: php forms post input

我无法弄清楚如何解决此脚本: 在第1点,我需要有一个$ data数组,其中包含一种成分,金额和嗯

这是html部分:

...
<tr>
  <td><input name="cantitate[1]" class="cantitate" /></td>
  <td><select name="unitate[1]"><?=$display->selectAmount()?></select></td>
  <td><input name="ingredient[1]" class="ingredient" /></td>
</tr>
...

这是php部分:

// ingredients
$ingredients = $_POST['ingredient'];
$amount = $_POST['cantitate'];
$um = $_POST['unitate'];

foreach($_POST as $key => $value){ 

 $data = null;
 if(isset($_POST['ingredient']) && !empty($_POST['ingredient']) && $_POST['ingredient']!=''){

    if($key=='cantitate') $data['amount'] = $value;
    if($key=='unitate') $data['um'] = $value;
    if($key=='ingredient') $data['ingredient'] = $value;                    

    //var_dump($data);
    // point 1
    // here will be the function to add one ingredient with one um, and one amount
 }

}

谢谢!

2 个答案:

答案 0 :(得分:2)

我认为你应该尝试制作

<tr>
  <td><input name="entry[1][cantitate]" class="cantitate" /></td>
  <td><select name="entry[1][unitate]"><?=$display->selectAmount()?></select></td>
  <td><input name="entry[1][ingredient]" class="ingredient" /></td>
</tr>

其中1来自迭代器。

然后你可以使用

获得一个包含所有请求的大数组
$data = $_POST['entry']

并通过它进行迭代。

答案 1 :(得分:0)

如果我理解正确的话,你可以这样做:

<tr>
<td><input name="data[]" class="cantitate" /></td>
<td><select name="data[]"><?=$display->selectAmount()?></select></td>
<td><input name="data[]" class="ingredient" /></td>
</tr>

和PHP:

<?php 
$data = $_POST['data']);
print_r($data); //$data[0] == cantitate, $data[1] == unitate
?>