Поскольку вы используете ajax в качестве источника данных, я думаю, что вам нужно заполнить select другим способом, потому что на стороне клиента у вас нет доступа к полным данным столбца.Вы должны взять данные, чтобы добавить выбор также с 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 Я написал код, просто чтобы показать вам свою идею, я не попробовал его, потому что у меня нет доступа к вашим данным на стороне сервера, еслине ясно, я постараюсь быть более точным.