0
データがAJAX呼び出しから取得され、正常に読み込まれるDataTablesテーブルを作成しています。検索はうまく機能します。マルチフィルター選択のコードを追加すると、ドロップダウンが表示されますが、それらは空です。私はjQueryとDataTablesの両方に最新のライブラリを使用しています。DataTablesマルチフィルタ選択でデータが入力されない
JS
function overview() {
$.ajax({
url: "/_inc/_ajax/ajax.tables.php",
dataType: 'json',
success: function(results) {
var table = $('#overviewTable').DataTable
({
initComplete: function() {
this.columns().every(function() {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo($(column.footer()).empty())
.on('change', function() {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search(val ? '^'+val+'$' : '', true, false)
.draw();
});
column.data().unique().sort().each(function (d, j) {
select.append('<option value="'+d+'">'+d+'</option>')
});
});
}
});
table.clear();
for(var i = 0; i < results["id"].length; i++) {
table.row.add(
[
results["id"][i],
results["title"][i],
results["Tier"][i],
results["region"][i],
results["2016"][i],
results["2017"][i],
results["Letter_Type"][i],
results["Change_Type"][i],
]
).draw();
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert("ERROR: " + xhr.responseText + " - " + thrownError);
}
});
}
私はそれが働いていなかった理由を把握するために管理HTML
<table id="overviewTable" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>';
<tr>
<th>ID</th>
<th>TITLE</th>
<th>TIER</th>
<th>REGION</th>
<th>2016</th>
<th>2017</th>
<th>LETTER TYPE</th>
<th>CHANGE TYPE</th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>TITLE</th>
<th>TIER</th>
<th>REGION</th>
<th>2016</th>
<th>2017</th>
<th>LETTER TYPE</th>
<th>CHANGE TYPE</th>
</tr>
</tfoot>
</table>';