Merhabalar, Laravel'de çok eski sayılmam 🙂 Yajra datatable kurulu projemde. Aşağıdaki şekilde bir sütun filtrelemesi kullanıyorum, böylece veritabanında status gibi (0, 1) gibi değerler içeren alanlarda da arama yapabiliyorum. Eğer bunun daha kısa bir yolu varsa onuda söylerseniz sevinirim. Ancak javascript konusunda çok ileri seviye olmadığım için yapmak istediğim şeyi kurgulayamadım.
Aşağıdaki kodlardan anlaşılabileceği gibi, Aksiyon Adı alanı için text input kutusu gelirken, Durum kutusu için selectbox geliyor. Veri sayısı Aktif ve Pasif ile sınırlı olduğundan ben bunu elle yazabildim. Ancak sonradan aklıma takıldı ve dedim ki neden groupBy ile listelemiyorum. Ya da ilerde örneğin il ilçe gibi çok verili listeleme yapmak istersem onları da aynı şekilde döngü ile yazdırmam gerekecek. Umarım sorunumu anlatabilmişimdir, örnek yazmak isteyen olursa diye veritabanı tablom ve tablonun ekrandaki görüntüsü aşağıdaki gibidir. Şimdiden teşekkürler.
Veritabanı Tablosu

Tablo Görüntüsü

$(document).ready( function () {
$('#actions tfoot th').each( function () {
var title = $(this).text();
if (title == '#' || title == 'Yönet') {
$(this).html('');
} else {
if (title == 'Durum') {
$(this).html('<select class="form-control form-control-sm"><option></option><option value="1">Aktif</option><option value="0">Pasif</option></select>');
} else {
$(this).html('<input class="form-control form-control-sm" type="text" placeholder="' + title + '" />');
}
}
} );
var table = $('#actions').DataTable({
dom: 'Bltrip',
lengthMenu: [[25, 100, -1], [25, 100, "Tümü"]],
processing: true,
serverSide: true,
responsive: true,
autoWidth: false,
buttons: [
{
extend: 'print',
exportOptions: {
columns: [ 1, 2 ]
}
},
{
extend: 'excel',
exportOptions: {
columns: [ 1, 2 ]
}
},
{
extend: 'pdf',
exportOptions: {
columns: [ 1, 2 ]
}
}
],
language: {
'url' : '//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Turkish.json'
},
ajax: {
type: 'POST',
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}'},
url: '{{ route('action.index') }}'
},
columns: [
{ data: 'id', name: 'id', searchable: false},
{ data: 'action_name', name: 'action_name'},
{ data: 'status', name: 'status'},
{ data: 'manage', name: 'manage', orderable: false, searchable: false},
],
initComplete: function () {
// Apply the search
this.api().columns().every( function () {
var that = this;
$( 'input, select', this.footer() ).on( 'keyup change clear', function () {
if ( that.search() !== this.value ) {
that.search( this.value ).draw();
}
} );
} );
}
});
table.columns(0).order('desc').draw();
} );