单击按钮时如何重新加载数据表?

Posted

技术标签:

【中文标题】单击按钮时如何重新加载数据表?【英文标题】:How do I reload the datatables when I click the button? 【发布时间】:2019-09-09 22:25:02 【问题描述】:

我有按钮“添加数据”,当点击“添加数据”时,数据表会增加数据。但它没有自动加载(仍在手动重新加载)。如果点击自动重新加载数据表上的“添加数据”按钮怎么办?

<script>
$(function() 
    $('#users-table').DataTable(
        processing: true,
        serverSide: true,
        ajax: '/krs/daftarPengajuan',
        columns: [
             data: 'kode_mk', name: 'kode_mk' ,
             data: 'nama_mk', name: 'nama_mk' ,
             data: 'jml_sks', name: 'jml_sks' ,
             data: 'semester', name: 'semester' ,
             data: 'action', name: 'action' 


        ]
    );

);
</script>

控制器

$result = \DB::table('matakuliah')

           ->leftJoin('kurikulum','matakuliah.kode_mk','=','kurikulum.kode_mk')
           ->where('matakuliah.kode_mk',$row->kode_mk)
           ->where('kode_jurusan',$jurusan)
           ->get();
 
 return Datatables::of($result)
  ->addColumn('action', function ($row) 
   $action = '<button class="btn btn-info btn-sm add-data" onClick="tambah_pengajuan(\''.$row->kode_mk.'\',\''.$row->semester.'\')"><i class="fas fa-plus-square"></i> Ambil</button>';

  return $action;
  )

->make(true);

感谢您的时间

【问题讨论】:

【参考方案1】:

我想你对这样的事情很感兴趣:

$(document).ready(function() 
    var t = $('#users-table').DataTable(... // your datatable configuration 
    $('.add-data').on( 'click', function () 
        t.row.add( [
            'data',
            'goes',
            'in',
            'each',
            '<td>'
        ] ).draw( false );
      );

    // Automatically add a first row of data
    $('.add-data').click();
 );

更多go here.

如果您对从 API 重新加载数据感兴趣,可以执行以下操作:

t.ajax.reload(); 

要了解有关此go here 的更多信息。

【讨论】:

【参考方案2】:

请检查以下代码:

<script>
$(function() 
   var user_tbl = $('#users-table').DataTable(
        processing: true,
        serverSide: true,
        ajax: '/krs/daftarPengajuan',
        columns: [
             data: 'kode_mk', name: 'kode_mk' ,
             data: 'nama_mk', name: 'nama_mk' ,
             data: 'jml_sks', name: 'jml_sks' ,
             data: 'semester', name: 'semester' ,
             data: 'action', name: 'action' 


        ]
    );
    $('body').on('click', 'a', function() 
        user_tbl.ajax.reload(null,false);
    );
);
</script>

【讨论】:

以上是关于单击按钮时如何重新加载数据表?的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时如何重新加载页面?

单击另一个表单中的按钮提交时如何在c#中重新加载表单?

如何在javascript中单击按钮重新加载网页,但在重新加载调用函数后

如何在免费的 jqgrid 4.15.4 中重新加载数据

如何使值不重置每个页面重新加载?

单击按钮后在视图中加载数据而不重新加载页面asp.net mvc中的所有数据