使用DataTables Ajax将数据POST到php控制器

时间:2016-02-24 16:58:14

标签: jquery json ajax post datatables

我正在尝试使用DataTables库为Jquery将一些简单数据发送到一个SQL查询控制器。这个查询将返回JSON,我将以愉快的方式继续,然后按照数据执行操作。

使用内置的jquery AJAX时,我没有遇到任何问题。这是工作代码:

$.post('/rx/dostuff', {fromDate: from_date, toDate: to_date}, function(data){                
            var dataObject = JSON.parse(data);
            if(data !== "[]"){
                $("#display_area").empty();
                $("#display_area").append("<div> " + ...

            blah blah blah

所以这很好用,我发布了from_date和to_date,我可以在网络参数标签中看到它被发送为

fromDate: 02/01/2016
toDate:   02/24/2016

我的PHP控制器选择了,我做一些语句绑定以保证安全,并且繁荣,我的结果返回给我JSON编码。

当我尝试使用DataTables库执行此操作时,我的params最终会像这样发送:

fromDate=02%2F01%2F2016&toDate=02%2F24%2F2016

PHP引发了地狱,并发出警告说我错过了我的控制器的参数1。

我的问题是,为什么DataTables发送这样的参数?我的发送方式是否格式错误?

这是我的DataTables AJAX代码:

$('#dataTable').DataTable({
        ajax: {
            url: "/rx/dostuff",
            type: "POST",
            contentType: "application/json",
            data: {
                "fromDate": from_date,
                "toDate": to_date
            }
        },
        columns: [
            { data: 'col'},
            { data: 'col'},
            { data: 'col'},
            { data: 'col'}
        ]
    });

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

删除DateTime

此参数定义将数据发送到服务器时的格式。默认为&#34; application / x-www-form-urlencoded;字符集= UTF-8&#34;根据您之前使用的contentType: "application/json"

,这应该适合您

有关详细信息,请参阅$.ajax()