2015-05-07 13 views
6

मैं अपने डेटाटेबल को अजाक्स कॉल के साथ सफलतापूर्वक भर सकता हूं, लेकिन तब मुझे नहीं पता कि जेएसओएन को कैसे पार्स किया जा सकता है जो इस अजाक्स कॉल के साथ डेटाटेबल द्वारा प्राप्त किया गया है।डेटाटेबल्स AJAX कॉल से प्राप्त JSON को पार्स कैसे करें?

यहाँ मेरी जावा स्क्रिप्ट कोड, सर्वर से ajax कॉल करता है और सही ढंग से मेरी datatable भरता है जो:

$('#transactions').DataTable({ 
     "processing": true, 
     "ajax": { 
      "url": "/transactions 
     }, 
     "columns": [ 
      { "data": "car"}, 
      { "data": "card_number"}, 
      { "data": "invoice"}, 
      { "data": "status"} 
     ] 
    }); 

यह JSON ऑब्जेक्ट सर्वर से लौटा है:

{ 
    "data": [ 
    { 
     "car": 190, 
     "card_number": "6395637", 
     "invoice": 200, 
     "status": "success" 
    }, 
    { 
     "car": 191, 
     "card_number": "9473650", 
     "invoice": 180, 
     "status": "success" 
    } 
    ], 
    "balance": 7300 
} 

आप कर सकते हैं के रूप में देखें, लौटाए गए JSON ऑब्जेक्ट का data पैरामीटर डेटाटेबल्स फ़ंक्शन द्वारा डेटाटेबल्स को भरने के लिए उपयोग किया जाता है, और अब मैं balance पैरामीटर को पार्स करना चाहता हूं, लेकिन मैं नहीं कर सकता। इसे कैसे प्राप्त किया जा सकता है?

+0

मैं ओपी कि इस JSON सर्वर द्वारा लौटाए और भर जाता है में वर्णन किया है साथ datatable प्रारंभ करना होगा डेटाटेबल्स के लिए और मैं इस जेएसओएन के बैलेंस पैरामीटर को कुछ जावास्क्रिप्ट वैरिएबल (यानी इसे पार्स) पर असाइन करना चाहता हूं – gdrt

उत्तर

17

कुछ इस तरह:

$('#transactions').dataTable({ 
    "ajax" : { 
     "url" : "/transactions", 
     "dataSrc" : function (json) { 
      // manipulate your data (json) 
      ... 

      // return the data that DataTables is to use to draw the table 
      return json.data; 
     } 
    } 
}); 

डॉक्स: https://datatables.net/reference/option/ajax.dataSrc

+0

धन्यवाद, दोस्तों, आपके उत्तर शानदार हैं! – gdrt

5

खुद

$.getJSON('/transactions', function(response) { 
    $('#transactions').dataTable({ 
    processing: true, 
    data: response.data, 
    columns: [ 
     { data: "car"}, 
     { data: "card_number"}, 
     { data: "invoice"}, 
     { data: "status"} 
    ] 
    }); 
    window.someGlobalOrWhatever = response.balance 
}); 
0

फोन DataTables 1.10 के बाद से, DataTable के यूआरएल सुविधा का उपयोग न करें अजाक्स, आप कर सकते हैं ajax.json() फ़ंक्शन का उपयोग करें: https://datatables.net/reference/api/ajax.json() मैंने इसे नीचे दिए गए उदाहरण कोड में कार्यान्वित किया है। इस के लिए

$(document).ready(function() { 
    $('#search-form').submit(function(e) { 
    e.preventDefault(); 
    var table = $('#location-table').DataTable({ 
     destroy: true, 
     ajax: "/locations.json", 
     columns: [ 
     { "data": "code" }, 
     { "data": "status" }, 
     { "data": "name" }, 
     { "data": "region" }, 
     { "data": "address" }, 
     { "data": "city" }, 
     { "data": "state" }, 
     { "data": "zip" }, 
     { "data": "phone_number" }, 
     ] 
    }) 
    table.on('xhr', function() { 
    var json = table.ajax.json(); 
    $('#totals').text(json.totals) 
    }); 
    }) 
}); 

नोट काम करने के लिए आप $('#location-table').DataTable() और नहीं $('#location-table').dataTable (अंतर किया जा रहा पूंजीकृत डी)

संबंधित मुद्दे