如何与 Laravel 同时使用 "paginate ()" 和清单?

How can I use "paginate ()" and checklist at the same time with Laravel?

我有一个 table 必须在其中输入数据,但是当我尝试存储数据时使用 paginate() 时,只存储当前页面而不是之前编辑的页面。它只发生在复选框上。

public function update(Request $request)
{
    $pensums = sizeof($request->input('course_id'));
    $id = $request->input('grade_id');
    $course_id = $request->input('course_id');

    $data = Pensum::where('grade_id', $id)
        ->update([
            'status' => 'INACTIVE',
        ]);

    for ($i = 0; $i < $pensums; $i++) {
        $data = Pensum::where('grade_id', $id)
            ->where('course_id', $course_id[$i])
            ->update([
                'status' => 'ACTIVE',
            ]);
    }

    $grade_id = $request->input('grade_id');

    return redirect()->action('PensumController@detail', ['grade_id' => $grade_id])
        ->with(['status' => 'Successful upgrade']);
}

当您使用分页 Laravel 刷新页面时,您选中的复选框不再保持选中状态。

您的复选框输入标签应如下所示

<input value="" type="checkbox" name="" class="mobile_hide" 
 onchange="loadingIdChange(this,'You have the pass id here')" '+(isChecked ? 'checked' : '')+'/>

您需要检查数组 selectedCheckboxes。

var isChecked = isIdAlreadyAdded(data[0],selectedCheckboxes); 

您应该使用 jQuery 将选中的复选框存储到数组中。

var selectedCheckboxes = []; //Array where you store checked checkbox IDs.

只要选中或取消选中复选框,就会调用此函数。

function checkboxChange(checkbox, id){
     if(checkbox.checked == true){
            if(!isIdAlreadyAdded(id,selectedCheckboxes)){
                selectedCheckboxes.push(id);
            }
        }else{
            removeIfExits(id,selectedCheckboxes);
       }
}

此函数将检查数组 selectedCheckboxes 中的 ID。

function isIdAlreadyAdded(id,arr){
        for(var i=0;i<arr.length;i++){
            if(arr[i] == id){
                return true;
            }
        }
        return false;
    }

此函数用于在未选中复选框状态时删除 ID。

function removeIfExits(id,arr){
        for(var i=0;i<arr.length;i++){
            if(arr[i] == id){
                delete arr[i];
                return;
            }
        }
    }

希望这会有所帮助。