2013-03-19 54 views
2

我不能想出如何解决这个脚本: 在第1点,我需要有一个$ data数组的一个成分,数量和UM

下面是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 
} 

} 

谢谢!

+0

如果您不确定实际接收的数据结构是什么,请在脚本的开头放置'var_dump($ _ POST);'。 – CBroe 2013-03-19 12:44:47

回答

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来来自interator。

然后你就可以使用

$data = $_POST['entry'] 

得到一个大阵列的所有请求,并反复通了。

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 
?> 
+0

谢谢,为了快速回答,但是我的表单更大,这就是为什么我为每个输入使用不同的密钥。无论如何,我会尝试也是这样。 – user2186504 2013-03-19 12:52:39