Как мне перезагрузить таблицы данных при нажатии кнопки?

#jquery #ajax #laravel #datatable

#jquery #ajax #laravel #datatable

Вопрос:

У меня есть кнопка «Добавить данные», при нажатии кнопки «добавить данные» количество данных в таблицах будет увеличиваться. но он не был загружен автоматически (все еще перезагружается вручную). как это сделать, если нажать кнопку «добавить данные» при автоматической перезагрузке таблиц данных?

 <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();
} );
 

Для получения дополнительной информации перейдите сюда.

Если вы заинтересованы в перезагрузке данных из API, вы можете сделать что-то вроде этого:

 t.ajax.reload(); 
 

Чтобы узнать больше об этом, перейдите сюда.

Ответ №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>