Yêu cầu Oct 28th, 2021 3:23 a.m. 144 1 1
  • 144 1 1
0

Lỗi hiển thị dữ liệu trong Datables

Chia sẻ
  • 144 1 1

Trong datatable mình đang call tới 1 hàm render ra dữ liệu với data-page-length='10' phần tử Nhưng khi mình dùng search từ ngày đến ngày để hiển thị dữ liệu nó lại trả về các phần tử paging không hoạt động! A/c nào đã gặp trường hợp ntn cho mình xin cách fix với !

1 CÂU TRẢ LỜI


Đã trả lời Oct 28th, 2021 5:36 a.m.
0

Bạn có thể paste hàm render ra dữ liệu ra đây ko ạ ?

Chia sẻ
Avatar Phan Thành @DiepThu
Oct 28th, 2021 9:45 a.m.
Avatar Phan Thành @DiepThu
Oct 28th, 2021 9:47 a.m.
$("#searchDateCampaignIndex").click(function(event) {
    var date = $('#datepickerCampaignIndex').val();
    var arrDate = date.split(" - ");
    var from_date = arrDate[0].split("/").join("-");
    var to_date = arrDate[1].split("/").join("-");
    $("#LoadingImage").show();
    getListCampaign(from_date, to_date);
});

function getListCampaign(from, to) {
    $.ajax({
        url: "{{route('getCampaignReport', $agencyWorkspace->id)}}",
        type: "POST",
        data: {
            from_date: from,
            to_date: to,
            _token: '{{ csrf_token() }}'
        },
        cache: false,
        dataType: 'json',
        success: function(data) {
            $("#LoadingImage").hide();
            var resultDataCampaigns = data.list_campaigns;
            var resultObjectCampaigns = data.object_campaigns;
            var bodyData = '';
            var output = '';
            var total_view = 0,
                total_click = 0,
                total_ctr = 0;
            $('input[name="daterange"]').daterangepicker({
                startDate: from,
                endDate: to,
                locale: {
                    format: 'DD/MM/YYYY',
                }
            });

            if (resultDataCampaigns.length > 0) {
                console.log(1)
                $.each(resultDataCampaigns, function(index, row) {
                    var view = 0,
                        click = 0,
                        ctr = 0;

                    if (resultObjectCampaigns[row.id] !== undefined) {
                        view = resultObjectCampaigns[row.id].view
                        click = resultObjectCampaigns[row.id].click
                        ctr = resultObjectCampaigns[row.id].ctr
                    }

                    total_view += view;
                    total_click += click;
                    total_ctr += ctr;
                    domain = window.location.host;
                    bodyData += `<tr>
                                    <td class="excludeThisClass">${index + 1}</td>
                                    <td><a href="/agency/${row.agency_id}/report/detailCampaign/${row.id}?from=${from}&to=${to}">${row.name}</a></td>
                                    <td>${formatNumber(view)}</td>
                                    <td>${formatNumber(click)}</td>
                                    <td>${formatNumber(ctr)}</td>
                                </tr>`
                })

                var total_arr = [];
                total_arr.push(total_view, total_click, total_ctr);

                var totalBoxTitle = ["View", "Click", "Ctr"]
                $.each(total_arr, function(index, value) {
                    output +=
                        `<div class='col-md-4 col-sm-6 col-xs-12'><div class='info-box'><div class='info-box-content'><h3 class='info-box-text'>
                        ${totalBoxTitle[index]}</h3><h5 class='info-box-number'>${formatNumber(value)}</h5></div></div></div>`;
                })
            } else {
                var total_arr = [0, 0, 0];
                var totalBoxTitle = ["View", "Click", "Ctr"]

                $.each(total_arr, function(index, value) {
                    output +=
                        `<div class='col-md-4 col-sm-6 col-xs-12'><div class='info-box'><div class='info-box-content'><h3 class='info-box-text'>
                        ${totalBoxTitle[index]}</h3><h5 class='info-box-number'>${formatNumber(value)}</h5></div></div></div>`;
                })

                bodyData += "<tr>"
                bodyData +=
                    "<td colspan='6' class='table_row_data'><p class='text-center my-0'>Không có dữ liệu</p></td>";
                bodyData += "</tr>"
            }

            $('#infoTotalCampaignIndex').html(output);
            $("#bodyDataCampaignIndex").html(bodyData);

            $('#tableDataCampaignIndex').DataTable({
                "paging": true,
                "retrieve": true,
                "order": [
                    [0, "asc"]
                ],
                "aoColumnDefs": [{
                        "bSortable": false,
                    },
                    {
                        "bSearchable": false,
                    }
                ]
            });
        }
    });
}

Đây b!

Avatar CongHD @conghdql4
Oct 29th, 2021 1:03 a.m.

@DiepThu Sorry, mình nói nhầm.

Mình muốn xem code phần backend. Phần search dữ liệu á.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí