首页 > 解决方案 > 将复选框值插入数据库

问题描述

我有 2 个复选框,它们的值从 ajax 发送到控制器以在数据库中发布数据(批准/拒绝),现在我希望如果两个复选框都未选中,则应将待处理的复选框插入数据库,如果我取消选中复选框,则值应该再次更新为pending.what可以是逻辑

html

<td> <input type="checkbox" id="APPROVED_{{$leave->id}}" class="approve_chk" name="chkBestSeller" value="APPROVED"  data-id="{{$leave->id}}"></td>
<td> <input type="checkbox" id="REJECTED_{{$leave->id}}" class="reject_chk"  name="chkBestSeller" value="REJECTED" data-id="{{$leave->id}}"> </td>

jQuery

     $('.approve_chk').on('change', function (e) {
    var pswd = prompt("enter password to confirm");
    if (pswd == 'approve') {

        alert('APPROVED');

        var currentEle = $(this).attr('id');
        var chk = currentEle.split("_");
        console.log(chk[0]);
        var status=chk[0];
        var ID=chk[1];

        e.preventDefault();
        $.ajax({
            url:'EmployeeChkBoxStore',
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            type:'POST',
            dataType:'json',
            data:{status:status,ID:ID},
            success:function(data){
                console.log(data);
                alert('success');
            }
        });



    } else {
        alert('NOT APPROVED');
        $(this).prop('checked', false);
    }

});






     $('.reject_chk').on('change', function (e) {
    var pswd = prompt("enter password to confirm");
    if (pswd == 'reject') {
        alert('REJECTED');
        $(this).closest('tr').find('.approve_chk').prop('checked', false);

        var currentEle = $(this).attr('id');
        var chk = currentEle.split("_");
        console.log(chk[0]);
        var status=chk[0];
        var ID=chk[1];

        e.preventDefault();
        $.ajax({
            url:"EmployeeChkBoxStore",
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            type:'POST',
            dataType:'json',
            data:{status:status,ID:ID},
            success:function(data){
                console.log(data);
                alert('success');
            }
        });

    } else {
        alert('NOT REJECTED');
        $(this).prop('checked', false);
    }
});

控制器

    public function EmployeeChkBoxStore(Request $request){
    $data=new Leave();
    $data->status=$request->get('status');
    $data->id=$request->get('ID');
     DB::update("UPDATE `leaves` SET status = '$data->status' WHERE id = '$data->id'");
     }

标签: phpjqueryajaxlaravelcheckbox

解决方案


我会使用 PHP:

if( isset( $_POST['checkbox'] ) ){ 
$status=1;
}
else {
$status=0;
}
insertintodb( $status );

问题出在哪里...


推荐阅读