Javascript 从Datatables中的自定义选择字段发送自定义数据
我已经在数据表中创建了一个自定义选择字段Javascript 从Datatables中的自定义选择字段发送自定义数据,javascript,jquery,ajax,datatables,Javascript,Jquery,Ajax,Datatables,我已经在数据表中创建了一个自定义选择字段 html = '<div class="col-md-3"><select id="filterleads" class="filterleads form-control">'; html += '<option value="all">All Leads</option>'; html += '<option value="processed">Process
html = '<div class="col-md-3"><select id="filterleads" class="filterleads form-control">';
html += '<option value="all">All Leads</option>';
html += '<option value="processed">Processed Leads</option>';
html += '<option value="unprocessed">Unprocessed Leads</option>';
html += '</select></div>';
$("div.toolbar").html(html);
html=”;
html+=‘所有潜在客户’;
html+=‘已处理的潜在客户’;
html+=‘未处理的潜在客户’;
html+='';
$(“div.toolbar”).html(html);
看起来像这样
现在,当select更改时,我希望它使用datatable ajax发送其值,以便我可以根据该值筛选记录
我就是这样做的
var table = $('#allleadstable').DataTable( {
"processing": true,
"serverSide": true,
"responsive": true,
"iDisplayLength": 50,
"sScrollX": "100%",
"order": [[ 1, "desc" ]],
"sScrollXInner": "100%",
"bScrollCollapse": true,
"ajax": {
url:"/leads",
data: {
"leadfilter": ($("#filterleads").val() ? $("#filterleads").val() : 'all')
}
},
"scrollX":true,
"scrollCollapse": true,
//"sDom": '<"top"flip>rt<"bottom"flip><"clear">',
"dom": '<"toolbar">frtip',
columnDefs: [
{ width: 60, targets: 0 },
{ width: 50, targets: 1 },
{ width: 50, targets: 2 },
{ width: 150, targets: 3 },
{ width: 150, targets: 4 },
{ width: 100, targets: 5 },
//{ width: 100, targets: 7 },
{ width: 100, targets: 6 }
]
});
$(document).on("change", "#filterleads", function(event) {
table.ajax.reload();
});
var table=$('#allleadstable')。数据表({
“处理”:对,
“服务器端”:正确,
“响应”:正确,
“iDisplayLength”:50,
“sScrollX”:“100%”,
“订单”:[[1,“说明”],
“sScrollXInner”:“100%”,
“崩溃”:没错,
“ajax”:{
url:“/leads”,
数据:{
“leadfilter:($(“#filterleads”).val()?$(“#filterleads”).val():“全部”)
}
},
“scrollX”:正确,
“卷轴崩溃”:没错,
//“sDom”:“rt”,
“dom”:“frtip”,
columnDefs:[
{宽度:60,目标:0},
{宽度:50,目标:1},
{宽度:50,目标:2},
{宽度:150,目标:3},
{宽度:150,目标:4},
{宽度:100,目标:5},
//{宽度:100,目标:7},
{宽度:100,目标:6}
]
});
$(文档).on(“更改”,“过滤器标题”,函数(事件){
table.ajax.reload();
});
问题是它找不到$(“#filterleads”)
,并且即使在我更改选择时也始终发送值'all'
每次更改select时如何发送其值?这个问题是因为您只在加载页面时读取select的值,默认情况下它是
all
。您需要更改代码,以便它在发出请求时读取select的值。为此,请为数据
属性提供一个函数:
"ajax": {
url: "/leads",
data: function(data) {
data.leadfilter = $("#filterleads").val()
}
},
请注意,我删除了三元,因为它不是必需的。选择将始终有一个值
有关更多信息,请参阅DataTables文档中的条目。它显示了一个错误custom.js:355 Uncaught SyntaxError:uncontracted token:谢谢它工作了,但还有一个错误,已删除”)“在数据{}之后,如果不添加三元,它不会在第一次加载SAH时使用ajax发送其值,我猜您是在DOM准备就绪之前调用DataTable,或者动态加载select?好的,在这种情况下需要三元:)