Источник данных из данных вложенного объекта — не загружается

#jquery #json #datatables

#jquery #json #таблицы данных

Вопрос:

У меня проблема с таблицами данных jQuery, которые не отображают никаких результатов. У меня есть действительный JSON, и я использую Laravel 5.2 с пакетом Yajra DataTables.

Я продолжаю получать это сообщение:

‘Предупреждение о таблицах данных: идентификатор таблицы = запрошенный пользователями неизвестный параметр ‘firstname’ для строки 0, столбца 0. Для получения дополнительной информации об этой ошибке, пожалуйста, смотрите http://datatables.net/tn/4

Мой код: JS

 $('#users').DataTable( {
    "processing": true,
    "ajax": "clients/json",
    "columns": [
        { "data": 'firstname' }
    ]
});
  

HTML

 <table id="users" class="table table-hover table-condensed">
 <thead>
 <tr>
 <th>Firstname</th>
 </tr>
 </thead>
 </table>
  

Данные JSON выглядят следующим образом :

 {"draw":0,"recordsTotal":7,"recordsFiltered":7,"data":[{""uniqueid"":"57cea728a724c",""firstname"":"ken",""lastname"":"ertert                        ",""telephone"":"",""mobile"":"",""postcode"":"",""email"":"ken@koodoocreative.co.uk",""tems"":1,""children"":{""3"":{""first_name"":"tertyreter",""last_name"":"etywert                       "}}},{""uniqueid"":"57c69f469b1fb",""firstname"":"bryan",""lastname"":"johnson                       ",""telephone"":"03454345324",""mobile"":"03453523452",""postcode"":"sr690k",""email"":"bryan@koodoocreative.co.uk",""tems"":1,""children"":{""4"":{""first_name"":"zak",""last_name"":"johnson                       "},""5"":{""first_name"":"sue",""last_name"":"johnson                       "}}},{""uniqueid"":"57cd426ed8414",""firstname"":"not",""lastname"":"paying                        ",""telephone"":"",""mobile"":"",""postcode"":"r55rwefe",""email"":"not@koodoocreative.co.uk",""tems"":1,""children"":{""2"":{""first_name"":"cant",""last_name"":"affordit                      "}}},{""uniqueid"":"57ce97a188f6f",""firstname"":"barry",""lastname"":"sdf                           ",""telephone"":"",""mobile"":"",""postcode"":"",""email"":"barry@koodoocreative.com",""tems"":null,""children"":{""1"":{""first_name"":"wherareU",""last_name"":"                              "}}},{""uniqueid"":"57f3a5f56539d",""firstname"":"bob",""lastname"":"smith                         ",""telephone"":"",""mobile"":"",""postcode"":"",""email"":"bob@koodoocreative.co.uk",""tems"":null,""children"":{""8"":{""first_name"":"claire",""last_name"":"smith"}}},{""uniqueid"":"57cd410b0a601",""firstname"":"keey",""lastname"":"smith                         ",""telephone"":"01928272623",""mobile"":"07836736534",""postcode"":"ts34 y78",""email"":"michael@koodoocreative.co.uk",""tems"":1,""children"":{""7"":{""first_name"":"blake",""last_name"":"smith                         "}}},{""uniqueid"":"57d29c2f72883",""firstname"":"test",""lastname"":"waiti                         ",""telephone"":"",""mobile"":"",""postcode"":"",""email"":"test@koodoocreative.co.uk",""tems"":null,""children"":{""6"":{""first_name"":"dunni",""last_name"":"sdf                           "}}}],"input":{"_":"1476088895989"}}
  

Ответ №1:

По какой-то причине ваши имена полей JSON содержат двойные кавычки. Также вы используете режим обработки на стороне сервера с таблицами данных Yajra, но отсутствует serverSide: true опция на стороне клиента.

Код, соответствующий вашим данным, должен был быть:

 $("#users").DataTable( {
   "processing": true,
   "serverSide": true,
   "ajax": "clients/json",
   "columns": [
      { "data": '"firstname"' }
   ]
});
  

Однако где-то в вашем PHP-коде вы устанавливаете имена столбцов с дополнительными двойными кавычками, это должно было быть просто { "data": "firstname" } на стороне клиента, если бы вы могли найти и удалить дополнительные двойные кавычки.