Saya menggunakan DataTables ( datatables.net ) dan saya ingin kotak pencarian saya berada di luar tabel (misalnya di div header saya).
Apakah ini mungkin?
jquery
search
datatables
filtering
Athanasios Emmanouilidis
sumber
sumber
$(".dataTables_filter :input").focus().val(value).keypress();
dikeyup
atas masukan saya selama sekitar satu jam, sebelum menemukan ini. Jangan pernah menggunakan API .. Solusi elegan!Sesuai komentar @lvkz:
jika Anda menggunakan datatable dengan huruf besar d
.DataTable()
(ini akan mengembalikan objek API Datatable) gunakan ini:yang merupakan jawaban @netbrain.
jika Anda menggunakan datatable dengan huruf kecil d
.dataTable()
(ini akan mengembalikan objek jquery) gunakan ini:sumber
oTable.fnFilter($(this).val());
Bekerja untuk saya juga,.DataTable()
dan yang ini:oTable.fnFilter($(this).val());
saat Anda menggunakan.dataTable()
The difference berada di ibukota D. Semoga membantu!oTable.api().search($(this).val()).draw();
Ini dapat berguna, terutama jika Anda ingin kontrol manual atas paginationlength
juga:oTable.api().page.len($(this).val()).draw();
Anda dapat menggunakan
sDom
opsi untuk ini.Default dengan input pencarian di div-nya sendiri:
Jika Anda menggunakan jQuery UI (
bjQueryUI
diatur ketrue
):Di atas akan menempatkan elemen pencarian / pemfilteran
input
ke dalamnya sendiridiv
dengan kelas bernamasearch-box
yang berada di luar tabel sebenarnya.Meskipun menggunakan sintaks singkat khusus, ia benar-benar dapat mengambil HTML apa pun yang Anda lemparkan.
sumber
'<"search-box"r><"H"lf>t<"F"ip>'
tidak yakin apakah ada sesuatu yang lebih buruklanguage: { search: "example", searchPlaceholder: "example" }
Yang ini membantu saya untuk DataTables Versi 1.10.4, karena API barunya
sumber
Versi yang lebih baru memiliki sintaks yang berbeda:
Perhatikan bahwa contoh ini menggunakan variabel yang
table
ditetapkan saat datatables pertama kali diinisialisasi. Jika Anda tidak memiliki variabel ini tersedia, cukup gunakan:Sejak: DataTables 1.10
- Sumber: https://datatables.net/reference/api/search ()
sumber
Ini harus bekerja untuk Anda: (DataTables 1.10.7)
atau
sumber
Saya memiliki masalah yang sama.
Saya mencoba semua alternatif yang diposting, tetapi tidak berhasil, saya menggunakan cara yang tidak benar tetapi berfungsi dengan sempurna.
Contoh masukan pencarian
kode jquery
sumber
Saya ingin menambahkan satu hal lagi ke jawaban @ netbrain yang relevan jika Anda menggunakan pemrosesan sisi server (lihat opsi serverSide ).
Query throttling yang dilakukan secara default oleh datatables (lihat opsi searchDelay ) tidak berlaku untuk
.search()
panggilan API. Anda bisa mendapatkannya kembali dengan menggunakan $ .fn.dataTable.util.throttle () dengan cara berikut:sumber
Anda bisa memindahkan div saat tabel digambar menggunakan
fnDrawCallback
fungsi tersebut.sumber
"drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },
Dalam
loadtransajax.php
Anda mungkin menerima nilai get:sumber
Jika Anda menggunakan JQuery dataTable jadi Anda hanya perlu menambahkan
"bFilter":true
. Ini akan menampilkan kotak pencarian default di luar tabel dan bekerja secara dinamis..seperti yang diharapkansumber