2017-01-28 12 views
0

私はJQuery DataTablesを使用して表データを表示しています。私がGET Ajaxのリクエストのために以下のコードを使用していますjQuery DataTables Ajax GET jsonフォーマット

$(document).ready(function() { 
    var table = $('#data_table').DataTable({ 
    ajax: { 
     type: 'GET', 
     url: url_path, 
     data: {'data_id':data_id}, 
     success: function(data) { 
      #here is where I am not sure how to populate the table with the data 
      for (var i = 0; i < data.length; i++) { 
       $.each(data[i], function(name, value) { 
        console.log(name + ": " + value); 
       }); 
      } 
     } 
    } 
}); 

例コンソール出力:

>>obj1_property1: value1 #to go in table row 1 column 1 
>>obj1_property2: value2 #to go in table row 1 column 2 
>>obj2_property1: value1 #to go in table row 2 column 1 
>>obj3_property2: value2 #to go in table row 2 column 2 

AJAXリクエストから、私は、オブジェクトの配列を取得し、私は自分の名前を取得することができます成功関数内のコードから値のプロパティを取得します。しかし、私はこのデータをDataTableに取り込む方法を考えることはできません。

私がここに発見した例:使用するhttps://datatables.net/examples/ajax/objects.htmlショー:

"ajax": "data/objects.txt", 
    "columns": [ 
     { "data": "name" }, 

をしかし、私は、私が提供した具体例にこれを調整する方法を考え出すことはできません - どこで、どのように私は「列を指定します'私の例では、オブジェクトの配列を返しますか?

+0

{"data":[... your objects here ...]}という形式のjsonを返しましたか?あなたの出力例からは、それはそのようには見えません。 – backpackcoder

+0

上記のようなコードを持つ@backpackcoderは、成功関数のコードをconsole.log(data)と置き換えると、proprty1:value1の形式になります。[Object、Object、Object]これらのオブジェクトはそれぞれ行を表す必要があります。ありがとう –

答えて

1

data optionの付いたcolumnsオプションをDatatables初期化オプションに追加する必要があります。また、 "data"フィールド(以下を参照)に含まれるデータ配列を持つ単一のオブジェクトであるJSONを返す必要があります。 ajaxオプションからsuccessオプションを削除する場合は、明示的に呼び出してテーブルを描画する必要があるためです。リクエストからプロセスデータをポストする必要がある場合に使用されます。このフィドルは助けてくださいhttps://jsfiddle.net/backpackcoder/fv95dzxs//echo/json呼び出しのポストを使用していたため、私のajaxデータオブジェクトは返されたJSONをidの代わりにdataパラメータに入れました。

この形式のデータが返されます。

{ 
    "data": [{ 
     "col1": "data1", 
     "col2": "data2", 
     "col3": "data3", 
    }, { 
     "col1": "data4", 
     "col2": "data5", 
     "col3": "data6", 
    }] 
    } 
関連する問題