使用Ajax的Laravel:依赖于Dropdown的Checkbox

时间:2017-03-12 09:07:12

标签: php ajax laravel laravel-5

我想创建一个基于角色权限的视图,其中有一个下拉列表和一个复选框列表。但是,当用户从下拉列表中选择一个角色时,应该检查相应的权限,并且其他权限将保持未选中状态。为此,我使用了以下视图:

<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);
});
?>

问题是我无法通过下拉列表设置复选框..有人可以建议吗?

2 个答案:

答案 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);