Yêu cầu thg 10 28, 2021 3:23 SA 115 1 1
  • 115 1 1
0

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

Chia sẻ
  • 115 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 thg 10 28, 2021 5:36 SA
0

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

Chia sẻ
Avatar Phan Thành @DiepThu
thg 10 28, 2021 9:45 SA
Avatar Phan Thành @DiepThu
thg 10 28, 2021 9:47 SA
$("#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
thg 10 29, 2021 1:03 SA

@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í