【发布时间】:2015-11-09 03:33:17
【问题描述】:
我有一个降序和升序的下拉列表供用户选择。我必须根据用户选择的下拉列表对我的数据表进行排序。例如,如果用户选择升序,我将按升序对数据表进行排序。有没有办法在我的代码中实现它?谢谢。
<script>
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
var select_value = $('#select_value').val();
var select_column = $('#select_column').val();
var column_index = '';
//var column = data[1] || 0; // use data for the age column
if ( select_value == '' || select_column == '' )
{
return true;
}
else {
//get the column name of data table
var column = 0;
$('#dataTable_table thead tr th').each(function(){
if( $(this).text() == select_column.toString())
{
return false;
}
column = column + 1;
});
column = data[column] || 0;
if(column!==0 && column.indexOf(select_value.toString()) >= 0)
{
return true;
}
}
return false;
}
);
$.fn.dataTableExt.sErrMode = 'throw';
$(document).ready(function () {
var table = $('#dataTable_table').DataTable();
$('#select_value').keyup( function() {
table.draw();
});
});
$(document).ready(function() {
$('#example').DataTable();
// this is for select dropdown when change
$('.toSort').on('change',function(){
var thisValue = $(this).val();
var ThisSort = $(this).attr('data-sort');
// trigger click on (1) mean first column .. you can change (1) to (2) and see the result
var column = $('#example thead tr th:nth-child(1)');
// make if statement to check which option user choose
if(thisValue == 'asc' && ThisSort !== 'asc'){
// trigger click
column.trigger('click');
$(this).attr('data-sort', 'asc');
}else if(thisValue == 'des' && ThisSort !== 'des'){
column.trigger('click');
$(this).attr('data-sort', 'des');
}
});
});
【问题讨论】:
-
javascript 将是最好的,一旦他们选择了项目,让 jquery 事件按名称监视每个选择,然后在他们选择后运行您的操作。你可以通过 ajax 调用来做到这一点。
-
@BrianThomas 不太清楚该怎么做。 AJAX 初学者。能帮上点忙吗?
-
我认为你可以触发点击你想要排序的列标题
-
如何在我的代码中实现它? @BrianThomas
标签: php jquery datatables