2015-10-21 3 views
1

Я хочу спросить, как помещать данные JSON в JQuery DataTables? Я не могу загрузить данные JSON, когда хочу загрузить его. Я использую CodeIgniter. Вот мой код на мой взглядПоместите данные JSON в JQuery DataTables

<table id="kategoriTable" class="display" width="100%" cellspacing="0"> 
     <thead> 
      <tr> 
       <th>Kode Kategori</th> 
       <th>Nama</th> 
       <th>Definisi</th> 
       <th>Unsur Abstrak</th> 
       <th>Alias</th> 
       <th>Sumber Definisi</th> 
       <th>Tanggal</th> 
       <th>Tipe Tanggal</th> 
       <th>Edisi</th> 
       <th>Role</th> 
       <th>Other Citation Detail</th> 
       <th>Katalog</th> 
       <th>Organisasi</th> 
      </tr> 
     </thead> 
    </table> 

Я попытался это JavaScript:

<script type="text/javascript"> 
     $('#kategoriTable').dataTable({ 
    ajax: { 
    url : "http://localhost:90/kugi_deployment/api/json/reply/KategoriRetrieve", 
    dataSrc : function(json) { 
     console.log(json); 
     return json.Kategoris 
    } 
    }, 
    //data : testData.Kategoris, 
    columns: [ 
    { data: "KodeKategori"}, 
    { data: "Nama"}, 
    { data: "Definisi"}, 
    { data: "UnsurAbstrak"}, 
    { data: "Alias"}, 
    { data: "SumberDefinisi"}, 
    { data: "Tanggal"}, 
    { data: "TipeTanggal"}, 
    { data: "Edisi"}, 
    { data: "Role"}, 
    { data: "OtherCitationDetail"}, 
    { data: "NamaKatalog"}, 
    { data: "NamaOrganisasi"} 
] 
    }); 
    </script> 

Это моя структура JSON данных

{"State":0,"Message":"","Kategoris":[{"KodeKategori":"A","Nama":"REFERENSI SPASIAL","Definisi":"","UnsurAbstrak":true,"Alias":"","SumberDefinisi":"","Tanggal":"\/Date(-62135596800000-0000)\/","TipeTanggal":"","Edisi":"","Role":"","OtherCitationDetail":"","NamaKatalog":"Katalog Unsur Geografis","NamaOrganisasi":"Badan Informasi Geospasial"}, ....and so on, ]} 

Последний, это контроллер:

public function index() 
{ 
    $get_url_service = $this->url_service->GetUrl('KategoriRetrieve'); 
    $get_json = file_get_contents($get_url_service); 
    $data['get_data'] = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($get_json, TRUE)), RecursiveIteratorIterator::SELF_FIRST); 
    $this->load->view('test', $data); 
} 

Он показывает ошибку, не может проанализировать данные. Вот скриншот, который я беру: This is the error in the browser

Когда я пытаюсь загрузить с этого URL-адреса, он возвращает «Загрузка» навсегда. Я что-то не так с ним? Я действительно путаюсь исправить это. Надеюсь, кто-нибудь может помочь мне исправить это. Благодаря

+0

данные JSON, вероятно, сериализовать в виде строки, вы должны разобрать его на объект JSON. Попробуйте '' 'var obj = JSON.parse (текст);' '' –

+0

как вы вернете json? ваш json тоже недействителен .. запустите его в валидатор –

+0

Ну, с JSON и с инициализацией ничего не происходит -> ** http: //jsfiddle.net/0ng51ek1/**, так что это должно быть что-то еще ... Вы когда-нибудь получали ответ? Обновите мой ответ ниже: 1) удалите ответ, если он есть, и 2) верните массив 'Kategoris' напрямую. Надеюсь, поможет! – davidkonrad

ответ

2
public function index() 
{ 
    $get_url_service = $this->url_service->GetUrl('KategoriRetrieve'); 
    $get_json = file_get_contents($get_url_service); 
    echo $get_json; 
    //what are the below lines good for?? 
    //$data['get_data'] = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($get_json, TRUE)), RecursiveIteratorIterator::SELF_FIRST); 
    //$this->load->view('test', $data); 
} 

У вас есть его немного назад. Вы должны указать dataTables для использования элементов из массива Kategoris, это делается через ajax.dataSrc. И columns следует указать, какую data -свойства в каждой позиции из массива, который соответствует какому столбец:

$('#kategoriTable').dataTable({ 
    ajax: { 
     url : "<?php echo base_url().'json/reply/KategoriRetrieve' ?>", 
     dataSrc : function(json) { 
      console.log(json); 
      return json.Kategoris 
     } 
    }, 
    columns: [ 
     { data: "KodeKategori"}, 
     { data: "Nama"}, 
     { data: "Definisi"}, 
     { data: "UnsurAbstrak"}, 
     { data: "Alias"}, 
     { data: "SumberDefinisi"}, 
     { data: "Tanggal"}, 
     { data: "TipeTanggal"}, 
     { data: "Edisi"}, 
     { data: "Role"}, 
     { data: "OtherCitationDetail"}, 
     { data: "NamaKatalog"}, 
     { data: "NamaOrganisasi"} 
    ] 
}); 
+0

У меня все еще есть ошибка при попытке загрузить данные. Он загружается вечно. Я редактировал мой код выше @davidkonrad – gultomicro

Смежные вопросы