数据库更新后刷新数据表

时间:2016-04-05 15:00:32

标签: javascript php html laravel

在我的html页面中,我有一个表格,显示来自我的数据库的数据。我希望在更新数据库时刷新数据表而不刷新所有页面。我正在使用PHP框架Laravel。



<table id="example" class="table">
    <thead>
    <tr class="headings">
        <th>ID &nbsp;&nbsp;&nbsp;</th>
        <th>first name </th>
        <th>last name </th>
        <th>E-mail </th>
        <th>birthday </th>
    </tr>
    </thead>

    <tbody>
    @foreach ($users as $user)
    <tr class="even pointer">
        <td class=" ">{{ $user->id }}</td>
        <td class=" ">{{ $user->name }}</td>
        <td class=" ">{{ $user->name2 }}</td>
        <td class=" ">{{ $user->email }}</td>
        <td class=" ">{{ $user->birthday }}</td>
    </tr>
    @endforeach
    </tbody>
</table>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:0)

&#13;
&#13;
setTimeout(function(){
   $( "#mytable" ).load( "your-current-page.html #mytable" );
}, 2000);
<button id="refresh-btn">Refresh Table</button>

<script>
$(document).ready(function() {

   function RefreshTable() {
       $( "#mytable" ).load( "your-current-page.html #mytable" );
   }

   $("#refresh-btn").on("click", RefreshTable);

   // OR CAN THIS WAY
   //
   // $("#refresh-btn").on("click", function() {
   //    $( "#mytable" ).load( "your-current-page.html #mytable" );
   // });


});
</script>
&#13;
&#13;
&#13;

How to refresh table contents in div using jquery/ajax

答案 1 :(得分:0)

使用这个包,它很棒,我一直都在使用它。这是datatables.net的laravel包装器

Github DataTables

答案 2 :(得分:0)

使用jQuery的示例。请注意,这只是1000种方法之一。这只是概述了使用AJAX和Laravel构建表的过程的基本思想。它并不意味着是一个插入式代码段。

基本表格代码

<table id="example" class="table">
    <thead>
        <tr class="headings">
            <th>ID &nbsp;&nbsp;&nbsp;</th>
            <th>first name </th>
            <th>last name </th>
            <th>E-mail </th>
            <th>birthday </th>
        </tr>
    </thead>

    <tbody>
        <?php // empty for now ?>
    </tbody>
</table>

<强> tablecontents.blade.php

<?php // Requires the $users table ?>
@foreach ($users as $user)
     <tr class="even pointer">
         <td class=" ">{{ $user->id }}</td>
         <td class=" ">{{ $user->name }}</td>
         <td class=" ">{{ $user->name2 }}</td>
         <td class=" ">{{ $user->email }}</td>
         <td class=" ">{{ $user->birthday }}</td>
     </tr>
@endforeach

AjaxController.php(或类似)

function getUpdatedTable() {
     $users = //get users
     return view("tablecontents", [ "users", $users ]);
} 

<强>的JavaScript

function updateTable() {
    $.ajax({
        url: "ajax/getUpdatedTable",
        success: function (data) {
             $("#example tbody").html(data);
        }

    });
}

$(document).ready(function () { 
     updateTable();
     setInterval(updateTable, 5000); //Re-update every 5 seconds     
});

答案 3 :(得分:0)

如同在评论中提到的那样,您可以使用jQuery之类的框架来构建实时模块。

$( document ).ready( function () {
    $.get('generic-handler.php')
        .done( function (data) {
            $('#realtime').innerHTML = data;
        });
});

在PHP文件中,您将代码放在显示数据库中,然后将其包装在setInterval中,以便每隔X秒发送一次请求。

<强>文档

$.get - jQuery
setInterval - JS