如果要获取所有值,则不能多次使用相同的参数名称。在这种情况下,您只会得到一个值。
您可能需要做的是在输入字段名称中使用数组访问表示法。
我假设您对每一行都有某种整数 id,以便您知道数据库中该行的 id 并可以将其关联起来。如果是这种情况,您可以像这样输入:
(注意:为简单起见,我在表格中显示输入,因为您提到您有一个表格)
<tr>
<td><input name="some_column_name[1]" ... /></td>
<td><input name="another_column_name[1]" ... /></td>
<td><input name="third_column_name[1]" ... /></td>
</tr>
<tr>
<td><input name="some_column_name[2]" ... /></td>
<td><input name="another_column_name[2]" ... /></td>
<td><input name="third_column_name[2]" ... /></td>
</tr>
请注意每个name
属性的括号中的值如何成为该行的整数 id。
现在,当您发布此数据时,PHP 将$_POST
像这样组装数组:
var_dump($_POST['some_column_name']);
var_dump($_POST['another_column_name']);
var_dump($_POST['third_column_name']);
会输出:
Array([1] => 'some value', [2] => 'some other value');
Array([1] => 'some value 2', [2] => 'some other value 2');
Array([1] => 'some value 3', [2] => 'some other value 3');
如果您希望将所有 POST 值放在一个多维数组中,您甚至可以考虑执行以下操作:
<tr>
<td><input name="table_data[1][some_column_name]" ... /></td>
<td><input name="table_data[1][another_column_name]" ... /></td>
<td><input name="table_data[1][third_column_name]" ... /></td>
</tr>
<tr>
<td><input name="table_data[2][some_column_name]" ... /></td>
<td><input name="table_data[2][another_column_name]" ... /></td>
<td><input name="table_data[2][third_column_name]" ... /></td>
</tr>
哪个,当发布时,会给你一个像
Array
([1] => Array(
['some_column_name'] => 'value',
['another_column_name'] => 'value',
['third_column_name'] => 'value'
),
[2] => Array(
['some_column_name'] => 'value',
['another_column_name'] => 'value',
['third_column_name'] => 'value'
)
)
您可能会发现这更容易使用。