当我第二次提交表单而不刷新表单时,数据将多次追加

时间:2019-02-03 15:57:23

标签: ajax laravel plugins datatable

当通过模式时,我在laravel datatable插件中使用ajax在表中添加数据。 1)。当我输入数据时,它会附加在表上,但与此同时,直到我刷新数据,它才会在datable中显示任何数据

2)。第二次,当我第二次输入数据时,它多次附加在表上

我尝试过重置模式,以检查是否是由于模式内部的数据所致,但是仍然通过应用模式隐藏和表单重置,但是仍然在第二次输入中多次输入了数据

$('#myModal').on('hidden.bs.modal', function () {    
    $(this).find('form').trigger('reset');
    $('#myModal').data('modal', null);
    $(this).removeData();
}

$('#submitDoc').click(function(){   
    $('.doc-form').on('submit', function(e){
    var self = this;
    e.preventDefault();
    e.stopPropagation();

    var no= {{ $no }};
    token =$('input[name=_token]').val();
    name = $('input[name=name]').val();
    start_date =  $('input[name=start_date]').val();
    end_date = $('input[name=end_date]').val();
    amount = $('input[name=amount]').val();
    image =$('input[name=select_file]').val();

    $.ajax({
        type: 'POST',
        url : '{{ URL("addDoc") }}',
        contentType: false,
        processData: false,
        data: new FormData(this)
    }).done(function(data){ 
$('.docTable').append(
            "<tr>"+"<td class='text-center'>" + no++  + "</td>" +
            "<td class='text-center'>" + data.id+ "</td>"+ 
            "<td class='text-left'>" +data.name+ "</td>"+
            "<td class='text-center'>" +start_date +
            "</td>"+"<td class='text-center'>" +end_date+ "</td>"+
            "<td class='text-right'>" +'$'+ data.amount + 
            "</td>"+"<td class='text-center'>" + 
            "<i class='fa fa-camera'></i> "+ "</td>"+"</tr>");
    });

我想将表格中的数据追加到表单提交中而不完美地刷新它,这意味着一次输入不会多次,并且当我在数据表中提交记录时,它也会增加页面过滤器中的记录条目

this is the screenshot of the table for reference

1 个答案:

答案 0 :(得分:0)

我已经解决了我的第一个问题,即当我将数据附加到表中时,记录计数器不会增加。在表中添加行的正确方法是

t.row.add( [  count++ ,
                 id + ,
                data.name,
                start_date+ ,
                end_date,
                data.amount,
            ] ).draw( false );

并在数据表中添加CSS,我们可以这样:

var t = $(".docTable").DataTable({  
        'columnDefs': [
            {
                "targets": [0,1,3,4,6], // your case first column
                "className": "text-center",
            },
            {
                "targets": 2,
                "className": "text-left",
            },
            {
                "targets": 5,
                "className": "text-right",
            }
            ],
    });