簡體   English   中英

AJAX:jQuery DataTables(服務器端)沒有獲得任何請求(GET或POST)數據

[英]AJAX: jQuery DataTables (Server Side) not getting any request (GET or POST) data

我正在嘗試打印一個簡單的DataTables,當我在任何列(或頁面右上角的“整個表格”)上使用搜索/過濾器時,我想要更新它。 當我點擊列標題(進行排序)時,請求會通過(盡管頁面仍然無限期地說“處理”)。 當我在過濾器中輸入任何內容時,它會無限期地說“處理”,但沒有請求傳遞給服務器。

以下是腳本:

client.php

<!-- jQuery and DataTables JS files, including CSS, are included here -->
<table id="employee-table" class="table-striped">
<thead>
<tr>
    <th>First</th>
    <th>Last</th>
    <th>DOB</th>
</tr>
<tr>
    <th>First</th>
    <th>Last</th>
    <th>DOB</th>
</tr>
</thead>
</table>
<script type="text/javascript">
jQuery(document).ready(function() {

    jQuery("#employee-table").dataTable({
        processing: true,
        serverSide: true,
        ajax: {
            url: "datatable.php",
            type: 'POST'
        }
    }).columnFilter({
        sPlaceHolder: "head:after",
        aoColumns: [
            { type: "text" },
            { type: "text" },
            { type: "text" }
        ]
    });
});
</script>

datatable.php

file_put_contents("debug.txt", $_REQUEST);

echo '{
"draw": 1,
"recordsTotal": 3,
"recordsFiltered": 3,
"data": [
    [
        "Angelica",
        "Ramos",
        "1986-01-01"
    ],
    [
        "Ashton",
        "Cox",
        "1987-01-01"
    ],
    [
        "Test",
        "Third",
        "1989-01-01"
    ]
]
}';

如您所見,我在服務器端腳本上所做的就是將所有請求的數據打印到文件中,以便我可以檢查它。 問題是,無論我在過濾器框中輸入什么內容,都沒有請求數據通過。 這是一個視覺:

請注意,在屏幕右上角搜索198,持續“Processing ...”

這是debug.txt的輸出。 請注意,這是在client.php的初始加載時加載到文件中的內容,當您在任何搜索框中鍵入任何內容時,它不會更改:

Array
(
[draw] => 1
[columns] => Array
    (
        [0] => Array
            (
                [data] => 0
                [name] => 
                [searchable] => true
                [orderable] => true
                [search] => Array
                    (
                        [value] => 
                        [regex] => false
                    )

            )

        [1] => Array
            (
                [data] => 1
                [name] => 
                [searchable] => true
                [orderable] => true
                [search] => Array
                    (
                        [value] => 
                        [regex] => false
                    )

            )

        [2] => Array
            (
                [data] => 2
                [name] => 
                [searchable] => true
                [orderable] => true
                [search] => Array
                    (
                        [value] => 
                        [regex] => false
                    )

            )

    )

[order] => Array
    (
        [0] => Array
            (
                [column] => 0
                [dir] => asc
            )

    )

[start] => 0
[length] => 10
[search] => Array
    (
        [value] => 
        [regex] => false
    )

)

我錯過了什么讓過濾器正常工作? 我假設我的客戶端DataTables JavaScript配置錯誤,但我不知道如何。 我的搜索似乎只是提取“遺留”DataTables解決方案,而不是他們擁有的簡化新版本。

任何幫助是極大的贊賞!

請嘗試以下方式:

client.php

$(document).ready(function() {
    var oTable = $('#employee-table').dataTable({
            "bJQueryUI": true,
            "bProcessing": true,
            "bServerSide": true,
            "bRedraw": true,
            "sAjaxSource": "datatable.php",
            "aoColumns": [
                {"mDataProp": "first"},
                {"mDataProp": "last"},
                {"mDataProp": "dob"},
            ],
            "aaSorting": [[0, "asc"]]
    });
});

datatable.php

請檢查以下鏈接,並在datatable提供的代碼中配置數據庫設置。

服務器端代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM