bugfix> jquery > 投稿

Datatablesとjqueryを使用してテーブルにデータを入力しようとしていますが、エラーが発生し続けます

TypeError: cannot use 'in' operator to search for 'length' in 'created_at'

私のコンソールで。

私のテーブル:

$(function () {
   $('.table-grid').DataTable({
       serverSide: true,
       processing: true,
       ajax: $('.table-grid').data('url'),
       columns: [
          'created_at',
          'username',
          'package_amount',
          'direct_id',
          'register_by',
          'action',
       ],
       responsive: true,
       searchDelay: 1000,
      });
    });

<table class="table table-full table-full-small dt-responsive display nowrap table-grid" cellspacing="0" width="100%" role="grid" data-url="{{ route('admin.member.getList') }}">
                        <thead>
                        <tr>
                            <th data-id="created_at">Join Date</th>
                            <th data-id="username">Username</th>
                            <th data-id="package_amount">Package</th>
                            <th data-id="direct_id" data-orderable="false" data-searchable="false">Direct ID</th>
                            <th data-id="register_by">Registered By</th>
                            <th data-id="action" data-orderable="false" data-searchable="false">
                            Action
                            </th>
                        </tr>
                        </thead>
                <tbody>
                </tbody>
              </table>

JQuery 3.2.1を使用しています 助けてください!

URLに注入されるデータは、以下の関数からのものです

public function findAll (DataTables $dataTable, $table=false) {
    if (!$table) return $this->model->all();
    else {
        return $dataTable->eloquent($this->model->query())
            ->addColumn('action', function ($model) {
                return view('admin.member.action')->with('model', $model);
            })
            ->editColumn('direct', function ($model) {
                if ($direct = $model->direct()) return $direct->username;
                else return 'Member not found.';
            })
            ->editColumn('package_amount', function ($model) {
                return number_format($model->package_amount, 2);
            })
            ->make(true);
    }

回答 2 件
  • これは役に立ちました。ありがとう@kaddath

    $('.table-grid').DataTable({
            serverSide: true,
            processing: true,
            ajax: { type:"GET", url: $('.table-grid').data('url') },
            columns: [
              { "data": "created_at" },
              { "data":"username" },
              { "data":"package_amount" },
              { "data":"direct_id" },
              { "data":"register_by" },
              { "data":"action" }
            ],
    
    

  • アップグレード中に直面した問題

    Uncaught TypeError: Cannot use 'in' operator to search for 'length' in

    最新のデータテーブルにアップグレード中(書き込み中)例:1.10.19。

    データテーブルによる修正:jquery-railsを使用した1.10.19(4.3.3)

あなたの答え