我正在构建一个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
}
});