如何在jQuery DataTable的ajax调用中发布参数

25

目前我的数据表格使用ajax调用时在URL中传递参数。

但我希望将其作为POST方法传递,请有经验的人帮助我关于使用post方法传递参数,这是我的尝试代码:

// Sending through GET
var $table = $('#example').dataTable( 
    "processing": true,
    "serverSide": true,
    "bDestroy": true,
    "bJQueryUI": true,
    "ajax": 'getResult.php?formName=afscpMcn&action=search&mcn_no='+mcnNum+'&cust_nm='+cust_num+'&emp_id='+emp+''
});

你看到这个页面了吗?http://www.datatables.net/examples/server_side/post.html - pecci
只需阅读手册 - Kevin
我想传递像表单名称、操作和其他参数之类的参数。在那个手册中,他们只提到了列数据。 - chaya
3个回答

55

像普通的jQuery ajax一样以POST方式传递它。结构应该如下所示:

ajax: { type: 'POST', url: <path>, data: { your desired data } }

示例:

var $table = $('#example').dataTable( 
    "processing": true,
    "serverSide": true,
    "bDestroy": true,
    "bJQueryUI": true,
    "ajax": {
        'type': 'POST',
        'url': 'getResult.php',
        'data': {
           formName: 'afscpMcn',
           action: 'search',
           // etc..
        },
    }
});
在PHP中,只需像往常一样访问POST索引即可(这是最直接的方法): < p > < code > getResult.php
$form_name = $_POST['formName'];
// the rest of your values ...

DataTables手册入口


嗨,Kevin,我遇到了麻烦,当JSON返回0个结果时,想象一下如果表中没有条目...所以当它返回一个空的JSON时,我从datatable得到错误..这是一个默认警报,通知JSON格式不正确..你知道我该怎么处理吗? - Sophie
@Sophie,重要的是你在响应中所拥有的任何内容仍然是有效的结构,并且符合datatables返回到客户端时所需的格式。即使它是零行数据,也需要满足这个要求。https://datatables.net/examples/server_side/simple.html - Kevin

10

1
$("#tbl").dataTable({
            oLanguage: {
                sProcessing: '<div id="loader"></div>'
            },
            bProcessing: true,
            "bServerSide": true,
            "iDisplayLength": pageSize,
            "sAjaxSource": " /PurchaseOrder/AddVendorItems", // url getData.php etc
            "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
                aoData.push({ "name": "where", "value": ID +" AND ISNULL(IsFinal,0) = "+ ($("#chkFinal").bootstrapSwitch('state') == true ? 1 : 0) });
                aoData.push({"name": "PackIDFK", "value": $("#PackIDFK").val()}) //pushing custom parameters
                oSettings.jqXHR = $.ajax( {
                    "dataType": 'json',
                    "type": "POST",
                    "url": sSource,
                    "data": aoData,
                    "success": fnCallback
                } );
            } });

这是一个实时的例子。aoData包含了在服务器端所需的所有参数,您还可以推送自己的自定义参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接