• 21-08-2019, 15:36:15
    #1
    Yeni yaptığım web yazılımda datatables kullanıyorum verileri ajax ile json formatta çekip listeliyorum fakat tablo başlıklarına tıklayınca büyükten küçüğe listeleyecek şekilde değişmiyor temanın orjinalinde yer alan jsonla neredeyse bire bir json oluşturdum fakat temanın json url adresini yazınca tüm filtrelemeler ve benzeri listeleme özellikleri çalışıyor kendi json url adresimi yazınca çalışmıyor sizce sebebi nedir
  • 21-08-2019, 15:38:57
    #2
    Json çıktısını paylaşırmısınız birde datatables kodlarını ekler misiniz
  • 21-08-2019, 15:41:49
    #3
    yine bir datatable yine bir sıkıntı order by yapmanız gerekiyor
  • 21-08-2019, 15:44:18
    #4
    ahmethekim14 adlı üyeden alıntı: mesajı görüntüle
    Json çıktısını paylaşırmısınız birde datatables kodlarını ekler misiniz
    Json paylaşabilirim fakat db paylaşamam bunun için maalesef yetkim yok


    DrJelibon adlı üyeden alıntı: mesajı görüntüle
    yine bir datatable yine bir sıkıntı order by yapmanız gerekiyor
    Datatable gelen veriyi zaten ters listelemesi gerekiyor tıklayınca
  • 21-08-2019, 16:02:02
    #5
    Sıralamak için başlığa tıkladığınızda console üzerinde herhangi bir hata oluşuyor mu? kontrol eder misiniz.
  • 21-08-2019, 16:04:41
    #6
    MSA adlı üyeden alıntı: mesajı görüntüle
    Sıralamak için başlığa tıkladığınızda console üzerinde herhangi bir hata oluşuyor mu? kontrol eder misiniz.
    Console üzerinde hiç bir hata mevcut değil
  • 21-08-2019, 17:11:47
    #7
    dostum eğer kodları paylaşırsan daha iyi yardımcı olabiliriz
  • 21-08-2019, 19:25:45
    #8
    Bazı filitreleme kısımlarını çalıştırmayı başardım ama bazıları hala çalışmıyor çalışmazsa işimden olcağaım tw gelip yardım edecek biri var mı



    İlgili HTML Kodu
        <table class="table table-striped- table-bordered table-hover table-checkable" id="kt_table_1">
    <thead>
    <tr>
    <th class="width-500" data-priority="1" style="text-align: center;">Tarih</th>
    <th data-priority="2" style="text-align: center;">Bayi Lisans No</th>
    <th data-priority="2" style="text-align: center;">Kısa Ünvan</th>
    <th data-priority="3" style="text-align: center;">Köy Pompa No</th>
    <th data-priority="2" style="text-align: center;">Tank No</th>
    <th data-priority="2" style="text-align: center;">Tank Kapasitesi</th>
    <th data-priority="2" style="text-align: center;">Akaryakıt Türü</th>
    <th data-priority="2" style="text-align: center;">Gün Başı Stok</th>
    <th data-priority="2" style="text-align: center;">Tanka Dolum</th>
    <th data-priority="2" style="text-align: center;">Satış</th>
    <th data-priority="2" style="text-align: center;">EPDK Durum</th>
    <th data-priority="9" style="text-align: center;">Gönderim Tarih</th>
    <th data-priority="9" style="text-align: center;">EPDK Sonuç</th>
    <th data-priority="2" style="text-align: center;" title="Zaman Damgası">Z.D</th>
    <th data-priority="10" style="text-align: center;">Ticket</th>
    </tr>
    </thead>
    <tfoot>
    <tr>
    <th style="text-align: center;">Tarih</th>
    <th style="text-align: center;">Bayi Lisans No</th>
    <th style="text-align: center;">Kısa Ünvan</th>
    <th style="text-align: center;">Köy Pompa No</th>
    <th style="text-align: center;">Tank No</th>
    <th style="text-align: center;">Tank Kapasitesi</th>
    <th style="text-align: center;">Akaryakıt Türü</th>
    <th style="text-align: center;">Gün Başı Stok</th>
    <th style="text-align: center;">Tanka Dolum</th>
    <th style="text-align: center;">Satış</th>
    <th style="text-align: center;">EPDK Durum</th>
    <th style="text-align: center;">Gönderim Tarih</th>
    <th style="text-align: center;">EPDK Sonuç</th>
    <th style="text-align: center;" title="Zaman Damgası">Z.D</th>
    <th style="text-align: center;">Ticket</th>
    </tr>
    </tfoot>
                                        </table>

    İligli JS KODU

    "use strict";
    var KTDatatablesSearchOptionsAdvancedSearch = function() {
    
        $.fn.dataTable.Api.register('column().title()', function() {
            return $(this.header()).text().trim();
        });
    
        var initTable1 = function() {
            // begin first table
            var table = $('#kt_table_1').DataTable({
                responsive: true,
                // Pagination settings
                dom: `<'row'<'col-sm-12'tr>>
                <'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7 dataTables_pager'lp>>`,
                // read more: https://datatables.net/examples/basic_init/dom.html
    
                lengthMenu: [5, 10, 25, 50],
    
                pageLength: 10,
    
                language: {
                    'lengthMenu': 'Display _MENU_',
                },
    
                searchDelay: 500,
                processing: true,
                serverSide: false,
                ajax: {
                    url: 'http://localhost/link-otomasyon/epdk-a-1a',
                    type: 'POST',
                    data: {
                        // parameters for custom backend script demo
                        columnsDef: [
                            'a1A_Date', 'a1A_Station_LicenseNumber', 'a1A_Short_Title', 'a1A_Village_Pump_Number', 'a1A_Tank_Number', 'a1A_Tank_Capacity', 'ft_title',
                            'a1A_Start_Stock', 'a1A_Tank_Filling', 'a1A_Sales', 'a1A_Epdk_Status', 'a1A_Data_Transmission_Date', 'a1A_Epdk_Result', 'a1A_Timestamp_ID', 'a1A_Ticket_Status_ID',],
                    },
                },
                columns: [
                    {data: 'a1A_Date'},
                    {data: 'a1A_Station_LicenseNumber'},
                    {data: 'a1A_Short_Title'},
                    {data: 'a1A_Village_Pump_Number'},
                    {data: 'a1A_Tank_Number'},
                    {data: 'a1A_Tank_Capacity'},
                    {data: 'ft_title'},
                    {data: 'a1A_Start_Stock'},
                    {data: 'a1A_Tank_Filling'},
                    {data: 'a1A_Sales'},
                    {data: 'a1A_Epdk_Status'},
                    {data: 'a1A_Data_Transmission_Date'},
                    {data: 'a1A_Epdk_Result'},
                    {data: 'a1A_Timestamp_ID'},
                    {data: 'a1A_Ticket_Status_ID'},
                ],
    
    
                initComplete: function() {
                    this.api().columns().every(function() {
                        var column = this;
    
                        switch (column.title()) {
                            case 'Kısa Ünvan':
                                column.data().unique().sort().each(function(d, j) {
                                    $('.kt-input[data-col-index="2"]').append('<option value="' + d + '">' + d + '</option>');
                                });
                                break;
    
                            case 'EPDK Durum':
                                var status = {
                                    1: {'title': 'Gönderildi', 'class': 'kt-badge--success'},
                                    2: {'title': 'Gönderilmedi', 'class': ' kt-badge--warning'},
                                    3: {'title': 'Ticket Açık', 'class': ' kt-badge--danger'},
                                };
                                column.data().unique().sort().each(function(d, j) {
                                    $('.kt-input[data-col-index="6"]').append('<option value="' + d + '">' + status[d].title + '</option>');
                                });
                                break;
    
                            case 'Z.D':
                                var status = {
                                    0: {'title': 'Damgalandı', 'state': 'danger'},
                                    1: {'title': 'Damgalanmadı', 'state': 'success'},
                                };
                                column.data().unique().sort().each(function(d, j) {
                                    $('.kt-input[data-col-index="7"]').append('<option value="' + d + '">' + status[d].title + '</option>');
                                });
                                break;
                        }
                    });
                },
    
                columnDefs: [
                    {
                        targets: -1,
                        title: 'Ticket',
                        orderable: false,
                        render: function(data, type, full, meta) {
                            return `
    <a href="#" class="btn btn-sm btn-clean btn-icon btn-icon-md" title="View">
    <i class="la la-edit"></i>
    </a>`;
                        },
                    },
                    {
                        targets: 13, // BOX DURUM
                        render: function(data, type, full, meta) {
                            var status = {
                                0: {'title': 'Damgalanmadı', 'class': 'kt-badge--danger'},
                                1: {'title': 'Damgalandı', 'class': ' kt-badge--success'},
                            };
                            if (typeof status[data] === 'undefined') {
                                return data;
                            }
                            return '<span class="kt-badge ' + status[data].class + ' kt-badge--inline kt-badge--pill">' + status[data].title + '</span>';
                        },
                    },
                    {
                        targets: 10, // NOKTALI RENKLİ YAZI DURUMU
                        render: function(data, type, full, meta) {
                            var status = {
                                1: {'title': 'Gönderildi', 'state': 'success'},
                                2: {'title': 'Gönderilmedi', 'state': 'warning'},
                                3: {'title': 'Ticket Açık', 'state': 'danger'},
                            };
                            if (typeof status[data] === 'undefined') {
                                return data;
                            }
                            return '<span class="kt-badge kt-badge--' + status[data].state + ' kt-badge--dot"></span>&nbsp;' +
                                '<span class="kt-font-bold kt-font-' + status[data].state + '">' + status[data].title + '</span>';
                        },
                    },
                ],
            });
    
            var filter = function() {
                var val = $.fn.dataTable.util.escapeRegex($(this).val());
                table.column($(this).data('col-index')).search(val ? val : '', false, false).draw();
            };
    
            var asdasd = function(value, index) {
                var val = $.fn.dataTable.util.escapeRegex(value);
                table.column(index).search(val ? val : '', false, true);
            };
    
            $('#kt_search').on('click', function(e) {
                e.preventDefault();
                var params = {};
                $('.kt-input').each(function() {
                    var i = $(this).data('col-index');
                    if (params[i]) {
                        params[i] += '|' + $(this).val();
                    }
                    else {
                        params[i] = $(this).val();
                    }
                });
                $.each(params, function(i, val) {
                    // apply search params to datatable
                    table.column(i).search(val ? val : '', false, false);
                });
                table.table().draw();
            });
    
            $('#kt_reset').on('click', function(e) {
                e.preventDefault();
                $('.kt-input').each(function() {
                    $(this).val('');
                    table.column($(this).data('col-index')).search('', false, false);
                });
                table.table().draw();
            });
    
            $('#kt_datepicker').datepicker({
                todayHighlight: true,
                format: 'dd/mm/yyyy',
                templates: {
                    leftArrow: '<i class="la la-angle-left"></i>',
                    rightArrow: '<i class="la la-angle-right"></i>',
                },
            });
    
        };
    
        return {
    
            //main function to initiate the module
            init: function() {
                initTable1();
            },
    
        };
    
    }();
    
    jQuery(document).ready(function() {
        KTDatatablesSearchOptionsAdvancedSearch.init();
    });