jquery 插件“Datatables”中基于 Ajax 的范围搜索

我正在使用基于jquery的表插件“ datatables ”,并且我正在尝试在两个数字( “start-date”“end_date”)之间实现基于ajax的“范围搜索” 。这些输入的值应用于 MySQL 列“order_id”中的查询。

在服务器端脚本(fetch.php)上,我捕获了两个值。

if(isset($_POST['start_date'], $_POST['end_date'])) {
         $query .= 'order_id BETWEEN "'.$_POST["start_date"].'" AND "'.$_POST["end_date"].'" AND ';
 }

问题是我在控制台中看不到任何错误,但使用数字范围搜索后没有显示结果。

“类别选择菜单”(类别和类别2)按预期工作。

我已经设置了一个测试站点,也许你可以帮助我找到错误:

这是我的脚本

$(document).ready(function () {

    var category = "";

    var category2 = "";

    var start_date = "";

    var end_date = "";


    load_data();


    function load_data(is_category, is_category2, start_date, end_date) {

        console.log(is_category, is_category2, start_date, end_date);

        var dataTable = $('#product_data').DataTable({

            "processing": true,

            "serverSide": true,

            "order": [],

            "ajax": {

                url: "fetch.php",

                type: "POST",

                data: {

                    is_category: is_category,

                    is_category2: is_category2,

                    start_date: start_date,

                    end_date: end_date

                },

            }

        });

    }


    // Number Range Search


    $('#search').click(function () {

        console.log($(this).attr('id'), start_date, end_date)

        var start_date = $('#start_date').val();

        var end_date = $('#end_date').val();

        if (start_date != '' && end_date != '') {

            $('#product_data').DataTable().destroy();

            load_data('','',start_date, end_date);

        }

        else {

            alert("Both Date is Required");

        }

    });


隔江千里
浏览 194回答 1
1回答

慕村225694

那是因为 is_category 和 is_category2 返回 0。您的 php 上可能有一个 if 语句,例如 if $_POST[is_category] 但您也需要执行相同的操作,以防没有选择类别。请分享完整的 php 来帮助您在您的点击功能上替换 load_data(start_date, end_date); 使用 load_data('','',start_date, end_date);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript