如何检查';选中';复选框-php
我试图在复选框中将选中的值从视图发送到数据库,但系统要么全部选中,要么不选中。 我将Laravel5.3与PHP5一起使用。 这是我的复选框视图如何检查';选中';复选框-php,php,laravel,Php,Laravel,我试图在复选框中将选中的值从视图发送到数据库,但系统要么全部选中,要么不选中。 我将Laravel5.3与PHP5一起使用。 这是我的复选框视图 <?php foreach($tests as $test) { if($test == 1) { echo "<input type='checkbox' name='check' value='1' checked/><br>
<?php
foreach($tests as $test) {
if($test == 1) {
echo "<input type='checkbox' name='check' value='1' checked/><br>";
}
else {
echo "<input type='checkbox' name='check'/><br>";
}
}
?>
任何帮助都将不胜感激。回答问题 测试表单中是否选中复选框的方法是以下代码:
if (Input::has('check')) {
// your logic here
}
在回答您的问题后,我注意到代码中存在一个问题,您希望将权限附加到角色。如果您感兴趣,我为其编写了修复程序:
固定件
我很确定您有一个页面,可以在其中设置角色的权限。这意味着只有一个角色,但有多个权限。我建议你在你看来这样做:
@foreach($permissions as $permission)
@if ($role->permissions()->contains($permission))
<input type="checkbox" value="1" name="permissions[{{ $permission->id }}]" checked>
@else
<input type="checkbox" value="1" name="permissions[{{ $permission->id }}]">
@endif
@endforeach
使用
如果(Input::has('check'))
insteadSry@hassan但条件仍然相同,它要么全部选中,要么不尝试使用html中的复选框名称作为数组,即@rajeshk所说的(check[]),您需要将您的复选框名称定义为数组check[]
,只要您使用foreach创建您的复选框,我仍然不走运。我尝试了你所有的建议。我需要提供其他东西吗@RajeshK
@foreach($permissions as $permission)
@if ($role->permissions()->contains($permission))
<input type="checkbox" value="1" name="permissions[{{ $permission->id }}]" checked>
@else
<input type="checkbox" value="1" name="permissions[{{ $permission->id }}]">
@endif
@endforeach
public function updatepermission(Request $request, $id) {
$role = Role::find($id);
$permissions = $request->input('permissions', []);
$permissionIds = array_keys($permissions);
$role->permissions()->sync($permissionIds);
return redirect('role')->with('message','Permissions has been updated');
}