我正在构建一个laravel应用程序,我想在两秒钟后显示数据库中是否有任何更新数据,因此在这种情况下,我给表赋予了一个'id',然后在一定时间间隔后对表进行了刷新。但是问题是在每次javascript调用之后,即使表也检索到该值,它也会在表中创建一个空行。我该如何避免这个问题。

<div class="container">
            <h3> List Of Courses </h3></br>

            <table class="table table-striped table-bordered dataTable" id="example">
            <thead>
            <tr>
                <td>Serial No</td>
                <td>Title</td>
                <td>Description</td>
                <td>Action</td>
            </tr>
            </thead>
            <tbody>
            <?php $i=1; ?>
            @foreach($items as $row)

                <tr>
                    <td>{{$i}}</td>
                <td class="title" data-id1="{{$row->id}}" contenteditable>{{$row->title}}</td>
                <td class="description" data-id2="{{$row->id}}" contenteditable>{{$row->description}}</td>


                <td>
                        <button type="button" onclick="deleteItem({{ $row->id }})" class="btn btn-danger">Delete</button>
                </td>

                </tr>

            <?php $i++; ?>

            @endforeach
            </tbody>
        </table>
        </div>

这是3秒钟后我必须用来加载表格的javascript:
<script type="text/javascript">
  setInterval(function() {
    $("#example").load("list #example");
  }, 30000);
</script>

最佳答案

您需要给load一个回调,并检查是否返回了任何数据。
不知道返回数据结构,我的最佳猜测是

$("#example").load("list #example", function (data) {
    // hopefully you are returning json. if not, return json. It's the artisan way :D
    let parsed = JSON.parse(data);

    if (parsed) {
        // build html and inject in dom
    }
});

10-06 15:09