Jquery 理解数据表中的数据

Jquery 理解数据表中的数据,jquery,jquery-datatables,Jquery,Jquery Datatables,我试图在我的项目中使用数据表。我想了解“fnServerData”回调选项的用法。我浏览了文档,看到了下面的示例代码- $(document).ready( function() { $('#example').dataTable( { "bProcessing": true, "bServerSide": true, "sAjaxSource": "xhr.php", "fnServerData": function ( sSource, aoData, f

我试图在我的项目中使用数据表。我想了解“fnServerData”回调选项的用法。我浏览了文档,看到了下面的示例代码-

$(document).ready( function() {
  $('#example').dataTable( {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "xhr.php",
    "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
      oSettings.jqXHR = $.ajax( {
        "dataType": 'json',
        "type": "POST",
        "url": sSource,
        "data": aoData,
        "success": fnCallback
      } );
    }
  } );
} );
这里的“sSource”、“aoData”参数是什么?我们如何在其中提供值?
另外,我们可以提交一个动态获取JSON数据的表单,而不是将JSP或PHP作为源(sAjaxSource)吗?

fnServerData
dataTables
中的一个内部函数,可以用自己的
ajax
处理程序覆盖。在这种情况下,使用舒适的
jQuery
函数

参数在
dataTables
core中定义,并按特定顺序要求:

1-
sSource
是数据源所在的URL。它在初始化时设置为
sAjaxSource
中的值。在本例中,
xhr.php

2-
aoData
是将发送到数据源的参数数组。默认情况下,它包含
分页信息
排序信息
过滤器信息
等(由核心自动设置),您的
数据源
脚本应对此作出反应。(例如:将sql查询限制为
pagesize
等)要向您的请求发送更多信息,您可以将其他值推送到
aoData
。像这样:

"fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
               aoData.push( { "name": "Input1", "value": $("#data1").val() } );
               aoData.push( { "name": "Input2", "value": $("#data2").val() } );
  oSettings.jqXHR = $.ajax( {
(将通过jQuery从 形成并将其作为输入1和输入2包含在帖子中)

如果您想知道发送的是什么,可以使用
firebug
控制台查看POST数据,也可以将类型更改为
GET
。然后,您将在地址栏中看到传递的参数(请注意,这可能是一个很长的字符串,可能会被截断)

3-
fnCallback
也是内核的内置函数,可以覆盖,但在本例中不是。如果您想在收到数据后在
JS
中进行一些后处理,您应该提供自己的函数


关于问题的第二部分:当然,您不需要使用
PHP
JSP
。任何能够动态服务于
JSON
数据的服务器端语言都很好(Python、Node,您可以命名它…

如果您使用的是ASP.NET MVC,并且您的控制器操作具有jQueryDataTableParamModel类型的参数,请考虑您需要创建一个子类(从jQueryDataTableParamModel扩展而来的类)并为从客户端发送到服务器的每个额外字段添加属性。在这种情况下,您应该添加两个属性:Input1和Input2。这样,ASP.NET MVC将自动绑定这些值。感谢您提供的信息。遗憾的是,我对ASP.NET MVC知之甚少:-(但我相信这很有帮助!太好了!解决了我发送列名而不是列索引进行排序的问题。Hello@mainguy,我检查了实际Datatables版本的文档,但没有找到参数“fnServerData”。我在旧版文档中发现了这一点,但在当前版本中没有其他选择。您知道在最新版本中如何执行此操作吗?请更新您的答案?