Jquery 如果';我把它赋给了一个变量

Jquery 如果';我把它赋给了一个变量,jquery,datatable,datatables,Jquery,Datatable,Datatables,数据表1.10.15 My DataTable被分配给一个变量: var myTable = $('#myTable').DataTable({ }); 我想修改ajax请求中发送的一些数据,然后在应用程序中按下按钮时重新绘制表。ajax方法的文档如下所示: 当我试着 myTable.({ 'data' : {'foo': 'bar'} }).draw(); 它给出了一个控制台错误: 未捕获类型错误:myTable不是函数 但您无法重新初始化数据表,因此我也无法执行类似操作: $('#myT

数据表1.10.15

My DataTable被分配给一个变量:

var myTable = $('#myTable').DataTable({ });
我想修改ajax请求中发送的一些数据,然后在应用程序中按下按钮时重新绘制表。ajax方法的文档如下所示:

当我试着

myTable.({ 'data' : {'foo': 'bar'} }).draw();
它给出了一个控制台错误:

未捕获类型错误:myTable不是函数

但您无法重新初始化数据表,因此我也无法执行类似操作:

$('#myTable').DataTable({ 'data' : {'foo': 'bar'} });

这种情况的背景是,当使用服务器端模式时,在Stackoverflow或DataTables论坛上没有答案的情况下,表的重置按钮。因此,我计划尝试操作ajax请求,通过将其作为ajax数据传递来重置
dir
column
参数。但我看不出如何处理这个请求。很多关于数据表的事情似乎不一定很复杂-我甚至不认为我应该做我在这里要求的事情,但是没有简单的方法将数据重置为其原始状态,因为它在ajax请求中保留了
dir
column
参数。

试试这个方法,然后以这种格式从服务器获取数据

数据=[{“S.no”:“Tiger Nixon”,“Name”:“System Architect”,“Job”:“$3120”}, {“序号”:“老虎尼克松”,“姓名”:“系统架构师”,“职务”:“$3120”}]


您所做的是正确的,但您需要将此作为初始化代码的一部分,而不是在初始化之后

var myTable = $('#myTable').DataTable({
    "ajax": {
        "url": "data.json",
        "data": {
            "reset_sort": $('#myhiddenfield').val()
        }
      }
});
我使用了文档中的代码-每次绘制表时,
reset\u sort
参数将作为datatable服务器端请求的一部分传递。在您描述的情况下,您可能会传递一个标志,告诉服务器端代码重置排序列和方向参数

例如,假设您有一个隐藏字段
id=“myhiddenfield”
和一个按钮
id=“mybutton”
,并且您有一个按钮的单击事件,您希望在其中刷新表并在ajax请求中传递一个参数,该参数告诉服务器端代码您希望重置排序

这是HTML中的隐藏字段:

<input type="hidden" value="false" id="myhiddenfield" />
因此,正常的数据表功能(排序、分页等)将在请求中传递
reset\u sort=false
,因为隐藏字段的默认值为
false

但是,当我们单击按钮时,我们会在调用
draw()
之前将隐藏字段更新为
true
,因此现在
reset\u sort=true
将被传递到服务器端代码


之后,我们将隐藏字段重置回其默认值。

这是关于在发出ajax请求之前处理数据的问题。这很简单,只需将数据提供给myTable.row.add([一些json数组]).drawRight,除了在发出ajax请求之后的
success
回调中执行此操作。我们讨论的是在发出请求之前修改ajax中发送的内容。谢谢。我已经以类似的方式进行了设置,并且正在使用ajax方法传递我自己的表单数据。问题是,这些都在页面加载中。如果用户按下某个按钮(重置表格),我需要修改请求。看一看我原来帖子中的链接问题,你就会知道我想做什么。我知道如何发出初始ajax请求——我正在努力解决的是动态修改它。在上面的例子中,代码在页面加载中…但是如果我想动态地更改
用户id:451
用户id:690
。。。然后触发ajax?我不明白如何动态操作
数据:
中的内容,然后提交ajax请求。您可以使用jquery操作
用户id
,从某处获取值。例如,在单击按钮时,您可以在调用
draw()
之前为隐藏字段指定一个值。然后,当datatable重新加载时,它将获得您动态设置的值。我无法理解它的设置!我有可用的数据,但如何将它****传递到
var myTable
的ajax方法****?这就是我不明白的地方!我理解你所说的所有原则。我已经更新了更详细的答案-我希望这更清楚!
<input type="hidden" value="false" id="myhiddenfield" />
$('#mybutton').click(function(e){
   e.preventDefault();
   $('#myhiddenfield').val('true');
   myTable.draw();
   $('#myhiddenfield').val('false');
}