[英]Make an array of the multiple select fields
我正在一個項目中,我必須制作一個用戶角色系統。它幾乎完成了,但是最后我必須在數據庫中添加路由和用戶權限,所以我得到了一個數組
[route] => Array
(
[0] => api/user
[1] => members
)
[assess] => Array
(
[0] => read
[1] => write
[2] => read
[3] => delete
)
但是我需要的是像
[0](
[route] => Array
(
[0] => api/user
)
[assess] => Array
(
[0] => read
[1] => write
)
)
[1](
[route] => Array
(
[0] => members
)
[assess] => Array
(
[0] => read
)
);
這是我的HTML代碼:
<tbody class="tbody">
<tr class="gradeX">
<td>
<select name="route[]">
<?php $routeCollection = Route::getRoutes();
foreach ($routeCollection as $value) {
echo '<option value="'.$value->getPath().'">'.$value->getPath().'</option>';
} ?>
</select>
</td>
<td><input type="checkbox" value="read" name="check[]"></td>
<td><input type="checkbox" value="write" name="check[]"></td>
<td><input type="checkbox" value="delete" name="check[]"></td>
<td><a href="javascript:;" style="padding: 3px 9px;" class="remove">Delete</a></td>
<div class="add-row" style="float: right;border: 1px dashed grey;border-radius:5px;border-bottom: 0px;">
<a href="javascript:;" style="padding: 3px 9px;"><span class="add">Add New</span></a>
</div>
</tr>
</tbody>
由於只有選中的復選框會在表單提交時提交,並且要將您的復選框鏈接到您的選擇,因此請為所有名稱數組屬性添加key
-
<tbody class="tbody">
<tr class="gradeX">
<td>
<select name="route[0]">
<?php $routeCollection = Route::getRoutes();
foreach ($routeCollection as $value) {
echo '<option value="'.$value->getPath().'">'.$value->getPath().'</option>';
} ?>
</select>
</td>
<td><input type="checkbox" value="read" name="check[0][]"></td>
<td><input type="checkbox" value="write" name="check[0][]"></td>
<td><input type="checkbox" value="delete" name="check[0][]"></td>
<td><a href="javascript:;" style="padding: 3px 9px;" class="remove">Delete</a></td>
<div class="add-row" style="float: right;border: 1px dashed grey;border-radius:5px;border-bottom: 0px;">
<a href="javascript:;" style="padding: 3px 9px;"><span class="add">Add New</span></a>
</div>
</tr>
</tbody>
您需要增加javascript代碼中的“添加新內容”鍵,才能正常工作
然后在php中,您可以使用key
進行鏈接來遍歷您的值,即。
$array = [];
foreach($_POST['route'] as $key => $value){
$array[] = array("route" => array($_POST['route'][$key]), // this is the route value, ie. api/user or members
"assess" => array($_POST['check'][$key]) //this is the check array, ie. read, write or read
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.