2016-12-22 17 views
0

同じJSONソース内の2つの別々の配列から2つのテーブルを出力したいのですが、何らかの理由で私のコードが機能しません。DataTables複数のJSON配列の複数のテーブル

JSONメッセージ:

{ 
    "Policies": [ 
    { 
     "name": "A", 
     "id": "1", 
     "score": "0" 
    } 
    ], 
    "Services": [ 
    { 
     "name": "B", 
     "id": "2", 
     "score": "0" 
    } 
    ] 
} 

HTMLコード:

<table id="policies-table" class="display" cellspacing="0" width="100%"> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>ID</th> 
     <th>Score</th> 
    </tr> 
    </thead> 
</table> 
<table id="services-table" class="display" cellspacing="0" width="100%"> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>ID</th> 
     <th>Score</th> 
    </tr> 
    </thead> 
</table> 

JavaScriptのコード:

var the_url = "www.example.com" 

var columnsDef = [ 
    { data : "name" }, 
    { data : "id" }, 
    { data : "score" } 
]; 

$(document).ready(function() { 
    $('#policies-table').DataTable({ 
     ajax : { 
     url : the_url, 
     dataSrc: "Policies" 
       }, 
     columns : columnsDef 
}), 

    $('#services-table').DataTable({ 
     ajax : { 
     url : the_url, 
     dataSrc: "Services" 
       }, 
     columns : columnsDef 
}) 
}); 
+0

どのようにJSにJSONを渡しています関数?また、単に「ポリシー」と「サービス」と書くことは役に立ちません。 JSONを繰り返し処理し、キーに基づいてテーブルを作成するのはなぜですか? – prabodhprakash

+0

JSONを "the_url"変数に渡しています。単一のテーブルを作成するときにJSONを反復する必要はありませんでした。だから、複数のテーブルを作成するときにJSONが異なるとは思いません。 @prabodhprakashをすべて行うためのDataTables機能が組み込まれていると思った –

+0

あなたのコードは正しいです、[この例](https://jsfiddle.net/dz5gxtob/3/)を参照してください。あなたのURLが正しいか、スクリプトからの応答が投稿したものと一致するかどうかを確認してください。 –

答えて

0

あなたのJSON変数を反復処理されていません。 prabodhprakashが示唆しているように、「ポリシー」と「サービス」を書くことは役に立ちません。

私はあなたがあなたが単一のものを初期化するために使用するのと同じ構文で複数のDataTableを初期化することができ、このfiddle

を見てみることをお勧め:

var json = { 
    "Policies": [{ 
    "name": "A", 
    "id": "1", 
    "score": "0" 
    }], 
    "Services": [{ 
    "name": "B", 
    "id": "2", 
    "score": "0" 
    }] 
} 


var policyTable = $("#policies-table").DataTable({ 
    "data" : (json.Policies), 
    "columns": [ 
     { "data": "name" }, 
     { "data": "id" }, 
     { "data": "score" }] 
}); 

var serviceTable = $("#services-table").DataTable({ 
    "data" :(json.Services), 
    "columns": [ 
     { "data": "name" }, 
     { "data": "id" }, 
     { "data": "score" }] 
}); 
+0

説明ありがとうございました!私はそれをよりアップ読み、以下に私のjavascriptを変更: –

+0

'VARからPolicyTable = $( "#ポリシーテーブル")のDataTable({ \t AJAX:{ URL:the_url、 \t \t dataSrcの:機能(JSON ){ \t \t \t JSON = JSON.parse(JSON); \t \t \t戻りjson.data; \t \t}、 "データ":(json.data.Policies)、 "列":[ { "data": "name"}、 {"data": "id"}、 {"data": "スコア "}] }); ' –