由於您使用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我已經寫了代碼,只是爲了向您展示我的想法,我沒有嘗試過,因爲我沒有訪問您的服務器端數據,如果它不清楚,我會嘗試更精確。