2011-05-13 2 views
1

私はJQuery Datatablesを使用しています。私はテーブルのデータトラフajaxを取得していますが、fnGetColumnData(各カラムのテーブル値を取得する)というメソッドを使用したいと思います。 ajaxは非同期であり、domreadyで実行されており、この関数は匿名であるため、getdataを試みる瞬間にデータは利用できません。したがって、SELECTフィルターは空白です。 @JQueryデータ型、フィルタリングが機能しない(トラフajax/async)

ドキュメントhttp://www.datatables.net/examples/api/multi_filter_select.html

http://pastie.org/1896827 (*ツールバーは、私が投稿時に利用できませんでしたので、私はここに貼り付けcouldntの。)

私はこれをどのように解決することができ

@私のコード?あなたがデータソースとしてAJAXを使用しているので

答えて

1

を探しているため

おかげで、私はあなたがクライアント側で使用すると、列の完全なデータへのアクセスを持っていないので、別の方法で選択を移入するために持っていると思います。あなたはあまりにもAJAXで選択をポーズするために、データを取る必要があります。私は

this.innerHTML = fnCreateSelect(oTable.fnGetColumnData(i))この呼び出しを変更したい

;:私はこのようなものをいただきたいですその後、

this.innerHTML = fnCreateSelect(i); 

、それはこの

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ファイル持っているよりものようなAjaxのソースからオプションを取得するようにfnCreateSelectを変更します。

$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 
} 

このようにして、選択フィルタに実際のデータを入力します私はあなたのサーバーのデータにアクセスすることができないので、私はそれを試していないので、私はあなたに私の考えを示すためにコードを書いたより正確である。

関連する問題