我想创建一个基于角色权限的视图,其中有一个下拉列表和一个复选框列表。但是,当用户从下拉列表中选择一个角色时,应该检查相应的权限,并且其他权限将保持未选中状态。为此,我使用了以下视图:
<div class="form-group">
<label for="">Roles</label>
<select class="form-control input-sm" name="role_id" id="role_id">
<option selected="selected" style=" display: none;">Choose a Role</option>
@foreach($roles as $role)
<option value="{{$role->id}}">{{$role->role}}</option>
@endforeach
</select>
</div>
@foreach($permissions as $permission)
<div class="checkbox">
<label><input type="checkbox" value="{{$permission->id}}">{{$permission->label}}</label>
</div>
@endforeach
这是ajax部分
<script>
$('#role_id').on('change', function (e) {
var role_id = $('#role_id option:selected').attr('value');
var info = $.get("{{url('permission-selected')}}", {role_id: role_id});
info.done(function (data) {
$.each(data, function (index, subcatObj) {
});
});
});
</script>
以下是路线:
<?php
Route::get('permission-selected', function(Request $request) {
$role_id = $request::input(['role_id']);
$roles = Role::with('permissions')::where('role_id', '=', $role_id)->get();
return Response::json($roles);
});
?>
问题是我无法通过下拉列表设置复选框..有人可以建议吗?
答案 0 :(得分:0)
您无法将该复选框添加到下拉列表中。相反,您需要使用列表项创建自定义下拉列表并编写onclick函数以隐藏和显示下拉列表。我之前做过这样的事。
答案 1 :(得分:0)
尝试类似的事情;
// Uncheck all
$("[type='checkbox']").prop("checked", false);
// Check current checkbox by using unique id or value selector.
$("[value*='']").prop("checked", true);