[英]JQuery Datatables, filtring not working (trough ajax/async)
我正在使用JQuery數據表。 我正在通過ajax獲取表數據,並且有一種我想使用的方法叫做fnGetColumnData(它為每一列獲取表值)。 由於ajax是異步的,在domready上運行,並且此函數是匿名的,因此在嘗試獲取數據時,該數據不可用。 因此,SELECT篩選器為空白。
文件@ http://www.datatables.net/examples/api/multi_filter_select.html
我的代碼@ http://pastie.org/1896827(*我無法在此處粘貼它,因為發布時工具欄不可用。)
我該如何解決?
謝謝看
由於您將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我編寫了代碼只是為了向您展示我的想法,我沒有嘗試過,因為我無法訪問您的服務器端數據,如果不清楚,我會嘗試更加精確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.