Jquery Datatable Hakkında
-
merhabalar
Şu Jquery datatable'ı tam olarak efektif kullanamadım. Şimdi tam olarak şunu istiyorum http://prntscr.com/cb2iyy (edit : lightshotta bir sıkıntı olmuş. ekstra filtreleme inputları işte tarihtir ıvır zıvır vs.)
kısaca customize filtrelemeler eklemek istiyorum. burda örnekte var https://datatables.net/examples/plug-ins/range_filtering.html
fakat örneklerde hep datatable'ın içinde olan datalarda filtreleme yapıyor. ama ajax datasource (server side) örnekleri yok yani /home/datalar?filtre1=blabla&filtre2=blabla şeklinde getle alasın.
Ben kendim zaten inputları manuel koyup filtrelememi yaparım onda sıkıntı yok ama acaba datatable'ın içinde böyle seçenek varsa kullanmak isterim ekstra javascript yükünden kurtulmuş olurum.
FCN tarafından 27/Ağu/16 18:10 tarihinde düzenlenmiştir -
uygulaman sadece bundan ibaretse sunu kullanabilirsin : http://www.grocerycrud.com/
-
Hocam bunu baya önceden kullanmıştım.O zamanda jquery ve javascript bilgim cok azdı 40 takla atmıştım kullancam diye.
Şey denesen mesela sen filtreye tıklayınca eklentının datasource unu değiştirsen adam madem sana /home/datalar?filtre1=blabla&filtre2=blabla boyle bısey vermemıs. Sende tüm filtreleme olasılıkların için ayrı ayrı datasourcelar gostersen.Her fonksiyon bi filtreye cevap verse gibi.
En olmadı server side olarak kullanma javascript dizisi olarak tüm veriyi cek. Ben 20 000 satır cekmıstım sanırım.Canavar gibi hızlı calısıodu. 60 000 - 70 000 satır verıde server side falan kullanın dıolar galıba unuttum şuanda bu tarz bişeydi..
-
@nurulmac teşekkürler öneri için ama .net tarafındayım. onun js haricinde sanıyorum ki arkaplanında php desteğide mevcut.
@hannibal valla açıkcası clientside tarafına okadar data çekmek mantıklı gelmiyor. ama her fonksiyonda datatable'ı baştan load ettirebilirim sanki o mantıklı geldi ama resmen 40 takla attırmak oluyor yine sağol bakıcam artık.
-
ajax da data gönderemiyor musun ?
<input type="text" name="f_date" />
data : { "fDate" : $("input[name=f_date]").val() }
gibi.Anlamadım ne istediğini tam olarak :/
Sonra da onu sunucu taraftan alıcaksın. Boşsa filtrelemeyecek, diğer search inputu gibi.
-
ozgunlu bunu yazdı
ajax da data gönderemiyor musun ?
< name="f_date" ="text" />
data : { "fDate" : $("input[name=f_date]").val() }
gibi.Anlamadım ne istediğini tam olarak :/
Sonra da onu sunucu taraftan alıcaksın. Boşsa filtrelemeyecek, diğer search inputu gibi.
olayı ajax ile halledip datayı alıp datatable'ın içine gömerim onda sıkıntı yok lakin şimdi bakıtğımızda zaten şu aşağıdaki gibir yapısı var
$(document).ready(function() { $('#example').DataTable( { "processing": true, "serverSide": true, "ajax": "../server_side/scripts/server_processing.php" } ); } );j
Oyüzden onlar en azından şu yapıya bir datapost olayı ilave etseymiş diye söyledim veya varsa ben bulamadım onu sizden istedim.
-
FCN bunu yazdıozgunlu bunu yazdı
ajax da data gönderemiyor musun ?
< name="f_date" ="text" />
data : { "fDate" : $("input[name=f_date]").val() }
gibi.Anlamadım ne istediğini tam olarak :/
Sonra da onu sunucu taraftan alıcaksın. Boşsa filtrelemeyecek, diğer search inputu gibi.
olayı ajax ile halledip datayı alıp datatable'ın içine gömerim onda sıkıntı yok lakin şimdi bakıtğımızda zaten şu aşağıdaki gibir yapısı var
$(document).ready(function() { $('#example').DataTable( { "processing": true, "serverSide": true, "ajax": "../server_side/scripts/server_processing.php" } ); } );j
Oyüzden onlar en azından şu yapıya bir datapost olayı ilave etseymiş diye söyledim veya varsa ben bulamadım onu sizden istedim.
Kendi yapımdan örnek olması için veriyim sana :
$('#carList').DataTable({ "responsive" : true, "processing" : true, "serverSide": true, "order": [[ 1, "asc" ]], "ajax": function(data, callback, settings) { // make a regular ajax request using data.start and data.length $.get("api/v1/cars", { limit: data.length, offset: data.start, search: data.search.value, order : data.order[0] }, function(res) { if (res.error) { callback({ recordsTotal: res.cars.total_count, recordsFiltered: res.cars.total_count, data : "" }); } else { // map your server's response to the DataTables format and pass it to // DataTables' callback callback({ recordsTotal: res.cars.total_count, recordsFiltered: res.cars.total_count, data: res.cars.data }); $("#carList > tbody > tr > td").addClass("text-center"); $("#carList > thead > tr > th").addClass("text-center"); } }); }, "columns" : [ { "data": "image", render: function (data, type, row, meta) { if (row.filename === null) return '<img src="images/no_image.png" width="100%" />'; else return '<img src="ad_images/' + row.ihaleden_id + '/' + row.filename + '.' + row.ext + '" />'; }}, { "data": "ihaleden_id" }, { "data": "plate" }, { "data": "brand", render: function (data, type, row, meta) { return row.brand + " " + row.model; }}, { "data": "build_year" }, { "data": "starting_price", render: function (data, type, row, meta) { if (row.starting_price <= 0) return "-"; return (row.starting_price/1000).toFixed(3) + " TL"; }}, { "data": "bid_date" }, ], "aoColumnDefs": [ { 'bSortable': false, 'aTargets': [ 0 ] } ], "fnRowCallback": function( nRow, aData, iDisplayIndex ) { $(nRow).click(function(){ //assuming your redirect id is in aData[0] as invisible column for example nRow.setAttribute("id",aData[0]) document.location.href = "detay.php?ad_no=" + aData[0]; }); }, "sPaginationType": "full_numbers", "language": { "emptyTable": "Kayıt bulunamadı.", "sZeroRecords": "Bu kriterde sonuç bulunamadı.", "search": "Bul", "sProcessing" : "<img src='/images/loader.gif' width='50' />", "sInfo": "Toplam <b>_TOTAL_</b> araç bulunmaktadır.", "sLengthMenu": "Gösterilen kayıt sayısı _MENU_", "sInfoFiltered": "", "sInfoEmpty":"", "paginate": { "sPrevious": "Önceki", "sNext": "Sonraki", "sFirst" : "İlk", "sLast" : "Son" } } });
Şimdi burda order, offset, limit, search parametrelerini get olarak gönderiyorum. Bunlar standart parametreleri, sen bunlara yenilerini ekleyebilirsin.
Input adından alarak yukarıda verdiğim örnekteki gibi.
-
Hocam veriyi Array'e atıp Ordan okutmak daha mantıklı olmaz mı ? Her Tuş için ayrı ayrı post işlemi yormaz mı sayfayı ? Ben öyle yapıyordum .
-
https://www.datatables.net/manual/server-side#Sent-parameters burada gerekli açıklamalar yer alıyor.