[英]PHP Form Processing with only filled in fields
我有一個具有8個屬性的PHP類和一個具有40個(8 * 5)文本框的HTML表單,每個對象8個,因此用戶可以一次輸入5個對象的數據。
對於每組盒子,我想創建該類的一個對象並將其保存到我的數據庫中。 例如,如果用戶已填寫10個框(兩組),則應創建和保存兩個對象。
如果我正確理解您的意見,以下是HTML表單示例:
<form action="" method="post">
<fieldset>
<legend>Group 1</legend>
<div>
<input type="text" name="groups[0][first_name]" />
</div>
<div>
<input type="text" name="groups[0][last_name]" />
</div>
</fieldset>
<fieldset>
<legend>Group 2</legend>
<div>
<input type="text" name="groups[1][first_name]" />
</div>
<div>
<input type="text" name="groups[1][last_name]" />
</div>
</fieldset>
<fieldset>
<legend>Group 3</legend>
<div>
<input type="text" name="groups[2][first_name]" />
</div>
<div>
<input type="text" name="groups[2][last_name]" />
</div>
</fieldset>
</form>
注意字段名稱,字段如何聚集。 提交這樣的表單后,您的$ _POST超全局數組將包含以下結構的$ _POST ['groups']數組:
Array
(
[0] => Array
(
[first_name] =>
[last_name] =>
)
[1] => Array
(
[first_name] =>
[last_name] =>
)
[2] => Array
(
[first_name] =>
[last_name] =>
)
)
您可以使用以下代碼輕松處理此類數據:
foreach ($_POST['groups'] as $group) {
$group = array_filter($group);
if (!empty($group)) {
// do something with group
}
}
這個小例子遍歷所有提交的組。 array_filter()函數將丟棄每個$ group數組中的所有空值,!empty(...)將確保$ group不為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.