JQuery Uncaught TypeError: Невозможно прочитать свойство 'reload' из неопределенного - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу перезагрузить таблицу данных после того, как вставлю новые данные в базу данных. Я написал этот код HTML.

<table class="table table-striped table-bordered bootstrap-datatable datatable" id="Slider_table">
<thead>
    <tr>
        <th>Title</th>
        <th>Price</th>
    </tr>
</thead>
<tbody>
    <?php foreach($items as $row){?>
    <tr>
        <td><?=$row->item_title;?></td>
        <td class="center"><?=$row->item_price;?></td>
   </tr>
</tbody>

Но это дает мне эту ошибку в console.log.

Uncaught TypeError: Невозможно прочитать свойство 'reload' из неопределенного на этой линии $("#Slider_table").DataTable().ajax.reload();

$('#add_items').on('click', function(e){
    e.preventDefault();
    var formData = new FormData($("#form1")[0]); //It automatically collects all fields from form

    $.ajax({
        url: "<?= base_url(); ?>Items/add_items",
        type: "post",
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success: function(output) {
            $("#Slider_table").DataTable().ajax.reload();
        }
    });
});

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Вы должны хранить ссылку на данные в одной переменной.А в соответствии с кодом, который вы использовали, вы не можете использовать способ перезагрузки ajax с возможностью датирования.

Таким образом, вы должны применить следующее решение:

Определить переменную таблицы: var table;

и загрузите данные таким образом в функцию готовности документа.

table = $("#Slider_table").DataTable();

$('#add_items').on('click', function(e){
    e.preventDefault();
    var formData = new FormData($("#form1")[0]); //It automatically collects all fields from form

    $.ajax({
        url: "<?= base_url(); ?>Items/add_items",
        type: "post",
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success: function(output) {
            table.row.add($(output)).draw();
            // Here in output you have to return table rows html from php

        }
    });
});
0 голосов
/ 17 апреля 2019

вы можете использовать

  dtable.draw();

после успеха.это освежит ваши данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...