如果要獲取所有值,則不能使用多次相同的參數名稱。在這種情況下你只會得到一個值。
您可能需要做的是在輸入字段名稱中使用數組訪問表示法。
我假設你有每行的某種類型的整數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');
如果你想在一個多維度的所有張貼的值陣列,你甚至可以考慮做這樣的事情:
<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'
)
)
你可能會發現這更容易處理。
用'&'分割。然後循環對。用'='分割它們,並將它們放入地圖中。爲什麼這樣哈克? – Ian
僅僅因爲我還在學習,而且我不想在一個更好的解決方案已經存在的情況下做一些過度參與。 – thumbtackthief
(即使用正則表達式,當有爆炸功能,我不知道) – thumbtackthief