Bunun popüler bir sorun olduğunu anlıyorum ve Stack Overflow ve diğer sitelerdeki (datatables web sitesi dahil) tüm benzer soruları okudum.
Açıklığa kavuşturmak için şunu kullanıyorum
JSON dizisini doğru bir şekilde aldığımdan da emin oldum:
[{"name_en":"hello","phone":"55555555"},{"name_en":"hi","phone":"00000000"}]
HTML tablom şu şekilde görünüyor:
<table id="customer_table">
<thead>
<tr>
<th>Name</th>
<th>Phone</th>
</tr>
</thead>
</table>
Ve işte benim document.ready
fonksiyonum:
$(document).ready(function(){
//$('#customer_table').DataTable();
$('#customer_table').DataTable( {
"ajax": 'json',
"dataSrc": "",
"columns": [
{ "data": "email" },
{ "data": "name_en" }
]
});
});
Aldığım hata şu
Yakalanmamış TypeError: Tanımsız 'length' özelliği okunamıyor
Daha da basit: ajax tanımlamasında dataSrc:''
seçeneğini kullanın, böylece dataTable bir nesne yerine bir dizi beklediğini bilir:
$('#pos-table2').DataTable({
processing: true,
serverSide: true,
ajax:{url:"pos.json",dataSrc:""}
}
);
Bkz. ajax seçenekleri
Tamam, yardımınız için hepinize teşekkürler.
Ancak sorun bundan çok daha kolaydı.
Tek yapmam gereken JSON'umu, diziyi data adlı bir niteliğe atamak için aşağıdaki gibi düzeltmek.
{
"data": [{
"name_en": "hello",
"phone": "55555555",
"email": "a.shouman",
"facebook": "https:\/\/www.facebook.com"
}, ...]
}
JSON verilerine sahip olduğunuzda aşağıdaki hata görünür
Daha iyi bir çözüm, yerel json dizi nesnesi için bir var data
atamaktır,
ayrıntılar için bakınız: https://datatables.net/manual/tech-notes/4
Bu, tablo içeriğini görüntülemenize yardımcı olur.
$(document).ready(function(){
$('#customer_table').DataTable( {
"aaData": data,
"aoColumns": [{
"mDataProp": "name_en"
}, {
"mDataProp": "phone"
}, {
"mDataProp": "email"
}, {
"mDataProp": "facebook"
}]
});
});