如何使用Laravel和Ajax从数据库阵列中选中复选框

时间:2019-03-26 09:05:13

标签: arrays json ajax laravel checkbox

我正在尝试将数据从数据库获取到选中的复选框。数据库中的复选框数据是通过json插入的数组,它们是基于插入函数的动态数据。

我的任务表:

id |employee_id | startDate  | endDate   | ...
---|------------|------------|-----------|--------
1  |["1","2"]   | .......... | ..........| ....

我的TasksController.php

function fetchdata(Request $request)
    {
        $id = $request->input('id');
        $task = Task::find($id);
        $output = array(
            'employee_id'    =>  $task->employee_id,
            'name'    =>  $task->name,
            'description'    =>  $task->description,
            'startDate'    =>  $task->startDate,
            'endDate'    =>  $task->endDate,
            'percentage'    =>  $task->percentage       

        );
        echo json_encode($output);
    }

    public function getEmployeesList()
    {

        $employeesList = Employee::all();


        return view('adminlte::tasks', ['employeesList' => $employeesList]);


    }

我的task.blade.php

 @foreach($employeesList as $emplist)
    <label class="checkbox-inline">
      <input type="checkbox" id="employee_id" name="employee_id[]" class="chck" value="{{$emplist->id}}" >{{ $emplist->name }}</label>    
 @endforeach

刀片中我的Ajax函数:

$(document).on('click', '.edit', function(){
        var id = $(this).attr("id");
        $('#form_output').html('');
        $.ajax({
            url: "{{route('tasks.fetchdata')}}",
            method: 'get',
            data: {id:id},
            dataType: 'json',
            success:function(data)
            {
                $('#id').val(data.id);
                $('#employee_id').val(data.employee_id);
                $('#name').val(data.name);
                .......................
                ..................
            }
        })
    });

因此,如何将数据库中已选中的数据检索到复选框,因为现在当我尝试更新记录时,我会得到空的“ employee_id”值。

提前谢谢

1 个答案:

答案 0 :(得分:0)

由于要在服务器端对数据进行编码,因此必须像在客户端那样对数据进行解码:

...
success:function(data)
{
    console.log( data );
    data = JSON.parse(data);

    $('#id').val(data.id);
    $('#employee_id').val(data.employee_id);
    $('#name').val(data.name);
    ...

}