Jquery数据表编辑一行元素并更新db

时间:2017-09-15 17:49:14

标签: jquery laravel datatable

我在laravel中建立网站。我已经形成了数据表,其中我有5列,第5列是一个按钮。单击该按钮时,我想将第4列元素从false转为true。

我的数据表代码:

$(function() {
    $('#orders-table').DataTable({
        processing: true,
        serverSide: true,
        ajax: '{!! route('datatables.getorders') !!}',
        columns: [
            { data: 'full_name', name: 'full_name' },
            { data: 'email', name: 'email' },
            { data: 'number', name: 'number' },
            { data: 'created_at', name: 'created_at' },
            { data: 'completed', name: 'completed'},
            {
                "data": null,
                "defaultContent": "<button onclick='Completed()'>Edit</button>",
                "target": -1
            }
        ],
        "order" : [[3, "desc"]]
    });
});
$(function Completed(){



});

我正在调用这样的表

public function getOrders()
{
    return datatables()->collection(Order::all())->toJson();
}

我不知道如何在按钮点击功能中访问我的订单属性或如何更新数据库。

1 个答案:

答案 0 :(得分:0)

我会走简单的路。使用id渲染最后一列,并将其设为按钮。

$('#example').dataTable( {
  "columnDefs": [ {
    "targets": 0,//number of column you want
    "data": "completed",
    "render": function ( data, type, row, meta ) {
var str;
if(row.completed === 0){
str = '<a class="complete-action-button" data-id="'+row.id+'" href="/api/orders/makeComplete" class="success">Complete</a>'; } else {
str = '<a class="complete-action-button" data-id="'+row.id+'" href="/api/orders/unComplete" class="danger">Uncomplete</a>'; 
}
      return str;
    }
  } ]
} );

在laravel中创建一些api路由,它将处理jquery $ .ajax。在ajax回调上使用简单函数来更改按钮URL。

如果您遇到jquery函数问题,请告诉我们。