我一直在使用数据表,现在需要通过select/dropdown来过滤表,这应该会过滤我的一列。我的代码是:
<?php
$urlPriority = $_GET['priority'];
if (empty($urlPriority)) {
$urlPriority = 'High';
}
$priorityStatus = array('Low'=>'Low Priority', 'Medium'=>'Medium Priority', 'High'=>'High Priority');
echo createSelectControl('Priority', $priorityStatus, $urlPriority, -1, false, 'reload();')
?>
<script type="text/javascript">
function reload() {
var priority = $("#Priority").val();
location.search = '?priority=' + priority;
}
</script>
我在sql查询中添加了下面这行代码:
$sql = "SELECT * from [table_name]
WHERE ... AND
Priority = '" . mssql_escape($urlPriority) . "' AND
etc AND
etc ";
这在选择其中一个选项时非常有效。
我现在需要的是让用户能够选择所有的选项,包括低,中和高,我已经尝试了所有我能想到的方法,但它只是返回一个空表?
谢谢你的建议。
发布于 2018-06-25 06:10:17
我找到了一个解决方案,它恰好满足了我的需求,我想我应该分享一下JSFiddle
initComplete: function() {
var column = this.api().column(2);
var select = $('<select class="filter"><option value=""></option></select>')
.appendTo('#selectTriggerFilter')
.on('change', function() {
var val = $(this).val();
//column.search(val ? '^' + $(this).val() + '$' : val, true, false).draw();
column.search(val).draw()
});
var offices = [];
column.data().toArray().forEach(function(s) {
s = s.split(',');
s.forEach(function(d) {
if (!~offices.indexOf(d)) {
offices.push(d)
select.append('<option value="' + d + '">' + d + '</option>'); }
})
})
}
发布于 2018-06-24 03:55:40
使用这个,
if($urlPriority!="")
{
//query with priority filter
}
else
{
//query without priority filter
}
如果用户选择优先级值,则将其分配给$urlPriority,否则将其设置为空。然后,它将检索每个结果
https://stackoverflow.com/questions/51004495
复制相似问题