由于您使用 ajax 作为数据源,我认为您必须以另一种方式填充选择,因为在客户端您无法访问列的完整数据。您也必须获取数据以使用 AJAX 填充选择。我想要这样的东西:
我会改变这个电话
this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i) );
在
this.innerHTML = fnCreateSelect( i );
然后更改 fnCreateSelect 使其从这样的 Ajax 源中获取选项
function fnCreateSelect( iColumnNumber )
{
var r='<select><option value=""></option>';
$.getJSON(
'createSelect.php',
{ colNumber: iColumnNumber },
function (json)
{//i don't check for success to make things simpler
foreach (option in json.data){
r += '<option value="'+option.name+'">'+option.name+'</option>';
}
}
);
return r+'</select>';
}
还有一个 createSelect.php 文件可以执行以下操作:
$colNumber = $_GET['colNumber'];
switch($colNumber){
case '0': $sql = "SELECT DISTINCT colName0 from table";
break;
case '1': $sql = SELECT DISTINCT colname1 from table"
break;
//make as many cases as the number of your columns then retrieve the data from the DB and return the json
}
通过这种方式,您可以使用它们必须过滤的实际数据填充选择过滤器
PS 我编写代码只是为了向您展示我的想法,我没有尝试过,因为我无权访问您的服务器端数据,如果不清楚,我会尝试更精确。