doujiang2020 2016-04-27 14:39
浏览 74
已采纳

更改时的Ajax jquery按钮将颜色和列的值更改为true或false

So i have this table

ECDLpayments -> ecdp_Payed = boolean true or false

Controller

  public function addUserPayments()
{
    if (Request::ajax()) {
        $input = Input::all();

        $newpayment = new ECDLPayments();
        $newpayment->ecdp_homeStudid = $input['userpaymentid'];
        $newpayment->ecdp_Amount = $input['userpaymentamount'];
        $newpayment->ecdp_DatePayed = date('Y-m-d', strtotime($input['date']));
        $newpayment->ecdp_Receipt = $input['userpaymentreceipt'];

        $newpayment->save();

        $result = DB::table('ECDLPayments')
            ->where('ecdp_ID', $newpayment->ecdp_ID)
            ->get();

        return $result;
    }
}

public function deleteUserPayments()
{
    if (Request::ajax()) {
        $input = Input::all();

        ECDLPayments::find($input['ecdpid'])->delete();
        return 'ok';
    }
}

Ajax / jquery code

//USER PAYMENTS
$('#insert-user-payments-btn').click(function(e){
    e.preventDefault();
    var userpaymentstable = $('#user-payments-table');

    var userpaymentamount = $('#userpaymentamount').val();
    var date = $('#userpaymentdate').val();
    var userpaymentreceipt = $('#userpaymentreceipt').val();
    var userpaymentid = $('#paymentuserid').val();

    if(userpaymentamount == '' || date == '' || userpaymentreceipt==''){
            alert('');
    } else {
        $.ajax({
            type:'POST',
            url:base_url+'/addUserPayments',
            data:{
                userpaymentamount:userpaymentamount,
                date:date,
                userpaymentreceipt:userpaymentreceipt,
                userpaymentid:userpaymentid
            },
            success: function(data){
                var fullDate = new Date(data[0].ecdp_DatePayed);
                var twoDigitMonth = ((fullDate.getMonth().length+1) === 1)? (fullDate.getMonth()+1) : '0' + (fullDate.getMonth()+1);
                var currentDate = fullDate.getDate() + "-" + twoDigitMonth + "-" + fullDate.getFullYear();
                console.log(data);
                userpaymentstable.show();
                userpaymentstable.find('tbody').append(
                    "<tr data-id="+data[0].ecdp_ID+">" +
                    "<td class='col-md-3'>"+data[0].ecdp_Amount+"</td>"+
                    "<td class='col-md-4'>"+currentDate+"</td>"+
                    "<td class='col-md-4'>"+data[0].ecdp_Receipt+"</td>"+
                    "<td class='col-md-1 text-center'><a class='btn btn-danger remove-payment'><i class='fa fa-trash'></i></a><a class='btn btn-success change-payment-status'><i class='fa fa-check-circle'></i></a></td>"+
                    "</tr>")
            }
        });
    }

});

$(document).on('click','.remove-payment',function(){
    var ecdpid = $(this).closest('tr').data('id');
    var tr = $(this).closest('tr');

    $.ajax({
        type:'POST',
        url: base_url+'/deleteUserPayments',
        data: {ecdpid: ecdpid},
        success: function(data){
            tr.remove();
        }
    });
});

Routes

Route::post('addUserPayments',"UserController@addUserPayments"); Route::post('deleteUserPayments',"UserController@deleteUserPayments");

I want the button change-payment-status to change the value of the ecdp_Payed to true/false but default true and changes color green/red like the remove button with ajax and jquery

  • 写回答

1条回答 默认 最新

  • dongzhuo3376 2016-05-10 20:07
    关注

    Change the last lines of your ajax call by adding the snippet in the below example

        $.ajax({
                    type:'POST',
                    url:base_url+'/addUserPayments',
                    data:{
                        userpaymentamount:userpaymentamount,
                        date:date,
                        userpaymentreceipt:userpaymentreceipt,
                        userpaymentid:userpaymentid
                    },
                    success: function(data){
                        var fullDate = new Date(data[0].ecdp_DatePayed);
                        var twoDigitMonth = ((fullDate.getMonth().length+1) === 1)? (fullDate.getMonth()+1) : '0' + (fullDate.getMonth()+1);
                        var currentDate = fullDate.getDate() + "-" + twoDigitMonth + "-" + fullDate.getFullYear();
                        console.log(data);
                        userpaymentstable.show();
                        userpaymentstable.find('tbody').append(
                            "<tr data-id="+data[0].ecdp_ID+">" +
                            "<td class='col-md-3'>"+data[0].ecdp_Amount+"</td>"+
                            "<td class='col-md-4'>"+currentDate+"</td>"+
                            "<td class='col-md-4'>"+data[0].ecdp_Receipt+"</td>"+
                            "<td class='col-md-1 text-center'><a class='btn btn-danger remove-payment'><i class='fa fa-trash'></i></a><a class='btn btn-success change-payment-status'><i class='fa fa-check-circle'></i></a></td>"+
                            "</tr>");
    
    //////////////////////////////////////////////////////////////////////////    
                        data[0].ecdp_Payed = true;
                        $(document).on('click','.change-payment-status',function(){
                            $(this).toggleClass("btn-success btn-danger");
                            data[0].ecdp_Payed = !data[0].ecdp_Payed;
                        });
    //////////////////////////////////////////////////////////////////////////    
                    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站