2014-01-14 90 views
0

我使用數據表jquery插件做了一些工作,但我還沒有能夠理解如何處理從服務器獲取的Json響應。 我得到這樣的響應:數據表處理json響應多個對象

"aaData":[ 
[ 
{ 
    "idTreatment":23, 
    "treatment":"Hospitalización", 
    "directions":"Directions", 
    "active":"1" 
}, 
{ 
    "idCIE10":1, 
    "cieCode":"A00", 
    "diagnostic":"COLERA", 
    "description":null, 
    "lastUsed":1386649580000, 
    "active":1 
} 
], 
[ 
{ 
    "idTreatment":27, 
    "treatment":"Antibiótico", 
    "directions":null, 
    "active":"1" 
}, 
{ 
    "idCIE10":1, 
    "cieCode":"A00", 
    "diagnostic":"COLERA", 
    "description":null, 
    "lastUsed":1386649580000, 
    "active":1 
} 
], 
[ 
{ 
    "idTreatment":33, 
    "treatment":"Hidratación Oral", 
    "directions":"Directions", 
    "active":"1" 
}, 
{ 
    "idCIE10":1, 
    "cieCode":"A00", 
    "diagnostic":"COLERA", 
    "description":null, 
    "lastUsed":1386649580000, 
    "active":1 
} 
] 
] 
} 

我一直在嘗試使用MDATA或mRender,而與數據表熟悉又IM,所以我會很感激,如果有人能thell我如何能在打印該表中的在HTML

在此先感謝

這個JavaScript溫控功能是使用初始化表,我嘗試使用基於實例aoColumns但林不知道這是否是最好的選擇之一IM;也基於使用mData的示例,僅顯示2列進行測試,正如你可以看到的,即時通訊使用對象字段名稱來訪問「數組」或json響應,但是當頁面呈現警告時說明它不能找到該字段。

function initializeTreatmentsTable(id){ 
     treatmentsTable = $('#treatmentsTable').dataTable({ 
       "bSort":false, 
       "sAjaxSource":"./diagnosticTreatment", 
       "fnServerParams": function (aoData) { aoData.push({name:"diagnosticId",value:id}); }, 
       "aoColumns": [ 
          { "mData": "idTreatment" }, 
          { "mData": "treatment" } 
          ] 
    }); 
+0

你究竟想在這裏完成什麼?表格中應包含哪些列? – dcodesmith

+0

即時通訊只是試圖顯示治療領域,但即時通訊無法正確訪問該對象,我也想知道如何,因爲我不知道我是否將不得不做類似的事情。 – Ccortina

+0

現在桌子上顯示的是哪些字段?你有一個jsfiddle來展示你的桌子嗎? – dcodesmith

回答

0

在API在官方網站datatables.net找了幾次後,嗯,我得出的結論,我不得不來測試。 如果我的問題不清楚,我會再解釋一遍。 json響應是一個對象數組,但對象本身至少由2個對象組成({[[object1] [對象2]],[[object1] [object2]]}),所以用mData訪問它們至少對我來說是不可能的,解決方案非常簡單,我想知道我從來沒有嘗試過,我只需要使用mRender和函數。

function initializeTreatmentsTable(id){ 
     treatmentsTable = $('#treatmentsTable').dataTable({ 
       "bSort":false, 
       "sAjaxSource":"./diagnosticTreatment", 
       "fnServerParams": function (aoData) { aoData.push({name:"diagnosticId",value:id}); }, 
       "aoColumns": [ 
          { "bVisible": false, 
           "mRender": function(data,type,full){ 
            return data.idTreatment;} 
          }, 
          { "mRender": function(data,type,full){ 
            return full[0].treatment; 
          } } 
          ] 
    }); 

使用初始化表的第一次,我得到了我只是想從第二個中的第一個對象,沒有2場的問題,但我現在怎麼不其一個IM上面的函數要做到這一點,所以我使用了包含整個json響應的「完整」參數,並對其進行了說明。

這可能不是最好的答案,但它爲我做了工作,所以我希望如果有人知道如何改進它,請隨時做,或者只是評論,我也希望這可以幫助某人其他。