Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Datatables中的自定义选择字段发送自定义数据_Javascript_Jquery_Ajax_Datatables - Fatal编程技术网

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?好的,在这种情况下需要三元:)