由于您使用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我已经写了代码,只是为了向您展示我的想法,我没有尝试过,因为我没有访问您的服务器端数据,如果它不清楚,我会尝试更精确。