Laravel-datatables: [7.0] Tambahkan dukungan untuk Layanan DataTable melalui permintaan ajax POST.

Dibuat pada 19 Jan 2016  ·  11Komentar  ·  Sumber: yajra/laravel-datatables

Sehubungan dengan pembahasan isu #341.

enhancement

Komentar yang paling membantu

Saya memiliki perbaikan yang sangat sederhana.
Dalam implementasi layanan, metode pembuat html
```php
fungsi publik html()
{
$tabel = $ini->pembangun()
->columns($this->getColumns())
->ajax(['type' => 'POST', 'data' => '{"_method":"GET"}']);

        $table->addAction(['width' => '80px']);

    return $table->parameters($this->getBuilderParameters());
}

`

Semua 11 komentar

Sudahkah Anda mengubah/menerapkan perubahan metode posting ini?
Kapan Anda akan menerapkan metode POST karena tidak berfungsi dengan opsi Ekspor (pdf, xls, csv)?
Saat ini metode GET digunakan. Ketika saya mengubahnya ke POST, jadi untuk halaman opsi ekspor tetap kosong.
Terima kasih

@nikunjkabariya ini belum diimplementasikan. Kalau bisa, PR dipersilahkan. Terima kasih!

benar-benar bisa menggunakan ini .. itu membuatku sangat kesakitan :(

@mastrip2 Baru saja berhasil; mengubah inisialisasi saya sebagai berikut.

var tableIndex=$('#tableIndex').DataTable({
"pesan": [[ 0, "asc" ]],
"aLengthMenu": [[5, 10, 25], [5, 10, 25]],
"iDisplayLength": 10,
"dateFormat": 'yyyy-mm-dd',
"memproses": benar,
"serverSide": benar,
"ajax": {'url': '{{route("clinics.api.laboratoryIndex")}}','ketik': 'POSTING','tajuk': {'X-CSRF-TOKEN': '{{ csrf_token() }}'}},
"kolom":[
{data: 'produk', nama: 'produk'},

],
"columnDefs": [
{ "dapat dicari": salah, "bSortable": salah, "target": 0 }
],
bahasa: {
"sProcessing": "Memproses...",
"sLengthMenu": "Tampilkan catatan MENU",
"sZeroRecords": "Tidak ada hasil yang ditemukan",
"sEmptyTable": "Tidak ada data yang tersedia di tabel ini",
"sInfo": "Menampilkan record dari START sampai END dari total TOTAL record",
"sInfoEmpty": "Menampilkan catatan dari 0 hingga 0 dari total 0 catatan",
"sInfoFiltered": "(memfilter total MAX record)",
"sInfoPostFix": "",
"sSearch": "Cari: ",
"sUrl": "",
"sInfoThousands": ",",
"sLoadingRecords": "Memuat...",
"oPaginate": {
"sFirst": "Pertama",
"sTerakhir": "Terakhir",
"sSelanjutnya": "Selanjutnya",
"sSebelumnya": "Sebelumnya"
},
"oAria": {
"sSortAscending": ": Aktifkan untuk mengurutkan kolom secara menaik",
"sSortDescending": ": Aktifkan untuk mengurutkan kolom secara descending"
}
}
});

Saya kira masalahnya adalah berapa lama mendapatkan parameter; jadi POST tidak bermasalah

@gadius Menggunakan implementasi default paket ini "sebagai layanan", dapatkah Anda menjelaskan di mana Anda membuat modifikasi ini?

table.blade.php saya hanya memegang

<style>
    th, td { white-space: nowrap; }
</style>

{!! $dataTable->table(['width' => '100%']) !!}

@push('scripts')
    <link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.0.3/css/buttons.dataTables.min.css">
    <script src="https://cdn.datatables.net/buttons/1.0.3/js/dataTables.buttons.min.js"></script>
    <script src="/vendor/datatables/buttons.server-side.js"></script>
    {!! $dataTable->scripts() !!}
<strong i="8">@endpush</strong>

Jadi tidak yakin di mana saya harus menambahkan modifikasi Anda agar ini berfungsi.

Apakah Anda harus mengedit salah satu file rintisan template Anda? Maukah Anda berbagi jika demikian, terima kasih

@ vesper8 Anda harus membuat tabel pada tampilan Anda dan menggunakan javascript yang saya posting untuk membuatnya berfungsi.

Duplikat dan akan diimplementasikan pada #826 .

Saya memiliki perbaikan yang sangat sederhana.
Dalam implementasi layanan, metode pembuat html
```php
fungsi publik html()
{
$tabel = $ini->pembangun()
->columns($this->getColumns())
->ajax(['type' => 'POST', 'data' => '{"_method":"GET"}']);

        $table->addAction(['width' => '80px']);

    return $table->parameters($this->getBuilderParameters());
}

`

Ini berfungsi hanya untuk 'X-CSRF-TOKEN': '{{ csrf_token() }}' di laravel 5.3 dan datatable 6.*

````
$('#pembayaran').dataTable({
pengolahan: benar,
Sisi server: benar,
"ajax": {
url: '{{ Url('payments_history_table')}}',
ketik: 'POST',
'tajuk': {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
'data':dataInfo,
},
"kolom": [
{ data: 'payment_id', nama : 'payment_id'},
{ data: 'transactions_id', nama : 'transactions_id'},
{"data": 'jumlah', "nama": 'jumlah'},
{"data": 'allowed_payment_methods_id', "name": 'allowed_payment_methods_id'},
{"data": 'user_id', "name": 'user_id'},
{"data": 'guest_donation_id', "name": 'guest_donation_id'},
{"data": 'transactions_types_id', "name": 'transactions_types_id'},
{"data": 'created_at', "name": 'created_at'},
{"data": 'updated_at', "name": 'updated_at'}
],
"columnDefs": [
{ "dapat dicari": salah, "bSortable": salah, "target": 0 }
],

    });

```

@herzcthu Saya baru menyadari hari ini solusi Anda. Tip yang bagus dan yang cerdas. Terima kasih!

@anik587 Saya biasanya mengatur token ini secara global.

    // Laravel ajax-token integration
    var _token = $('meta[name="csrf-token"]').attr('content');
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': _token
        }
    });

http://datatables.net/tn/7 Kesalahan diperbaiki Dengan Menambahkan 'X-CSRF-TOKEN': '{{ csrf_token() }}' ini sebagai gven di bawah ini

$('#pembayaran').dataTable({
pengolahan: benar,
Sisi server: benar,
"ajax": {
url: '{{ Url('payments_history_table')}}',
ketik: 'POST',
'tajuk': {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
'data':dataInfo,
},
"kolom": [
{ data: 'payment_id', nama : 'payment_id'},
{ data: 'transactions_id', nama : 'transactions_id'},
{"data": 'jumlah', "nama": 'jumlah'},
{"data": 'allowed_payment_methods_id', "name": 'allowed_payment_methods_id'},
{"data": 'user_id', "name": 'user_id'},
{"data": 'guest_donation_id', "name": 'guest_donation_id'},
{"data": 'transactions_types_id', "name": 'transactions_types_id'},
{"data": 'created_at', "name": 'created_at'},
{"data": 'updated_at', "name": 'updated_at'}
],
"columnDefs": [
{ "dapat dicari": salah, "bSortable": salah, "target": 0 }
],

    });
Apakah halaman ini membantu?
0 / 5 - 0 peringkat