我需要在完整函数上更改发送到ajax调用的数据。
假设我在ajax调用开始之后设置了var total = 1;
function test(total) {
total = total;
alert("total : " + total);
}
$('#call_analysis_basic_table').DataTable( {
"processing": true,
"serverSide": true,
"iDisplayLength": 100,
"ajax":{
type: "POST",
url :"http://localhost:8050/phpservice/index.php", // json datasource
data: {
"rec" : total,
"phone" : "d123",
"from_date" : "14-05-2016" ,
"to_date" : "20-09-2017"
},
error: function(){
alert("error");
},
complete: function(data){
total = data.responseJSON.recordsTotal;
test(total);
}
}
} );
第一次参数rec
的值为1
,最后我在完整函数中更改了total的值(假设现在总值为20)。
但是当我点击表格的第2页时,ajax调用开始了,它再次将rec的值发送到1,而不是发送20?
为什么会发生这种情况,我在完整函数中更改参数的值但仍在下一个ajax调用中,它获取参数的旧值?
答案 0 :(得分:2)
data
值可以是一个函数,它将被调用以返回发送给服务器的数据:
data: function(d) {
return $.extend({}, d, {
"rec" : total,
"phone" : "d123",
"from_date" : "14-05-2016" ,
"to_date" : "20-09-2017"
};
},
这将使用total
的更新值。
请参阅ajax.data
documentation。