javascript-使用基于Codeigniter构建的Jquery Java刷新html表

伙计们,我有一个数据来自外包表,我正在表中呈现.我正在使用PHP函数解码并显示的Json中的原始数据.

我一直在谷歌搜索自动刷新该数据,发现了这一点
Auto refresh table without refreshing page PHP MySQL

我设法建立了Ticked答案中建议的内容,似乎是第一次工作,但它没有刷新.所以当页面加载时

我叫这个

$(document).ready (function () {
                    var updater = setTimeout (function () {
                        $('div#user_table').load ('get_new_data', 'update=true');
                        /*  location.reload(); */
                    }, 1000);
                });

它将从控制器文件加载名为get_new_data的函数并将其加载到

 <div class="container-fluid" id="user_table">

                       </div>

Codeigniter控制器的功能是

 public function get_new_data(){

    $url = 'https://gocleanlaundry.herokuapp.com/api/users/';
    $result = $this->scripts->get_data_api($url);
    $data_row = $result;


                            $tbl    = '';
                            $tbl .= '<table class="table table-striped table-responsive" id="tableSortableRes">
                               <thead>
                                   <tr>
                                       <th>Name</th>
                                       <th>Email Address</th>
                                       <th>Role</th>
                                       <th>Status</th>
                                       <th>Action</th>
                                   </tr>
                               </thead>
                               <tbody>';

                                foreach($data_row as $row){
                                $tbl .= '<tr class="gradeX">
                                       <td>' . $row->name . '</td>
                                       <td>' . $row->email . '</td>
                                       <td>' . $row->role . '</td>
                                       <td><p id="' . $row->_id. '_status">'.( $row->alive == true ?  'Active' : 'Banned').' </p></td>
                                       <input id="' . $row->_id . 'status_val" value="' . $row->alive . '" type="hidden">
                                       <td class="center">

                                      <a href="#" id="' . $row->_id . '_rec" onclick="UpdateStatus(' . $row->_id . ')" class="btn btn-mini ">'
                                       . ($row->alive == '1' ? '<i class="fa fa-thumbs-o-up fa-fw"></i>' :  '<i class="fa fa-thumbs-o-down fa-fw"></i>' ) . '</a>
                                       </td>

                                   </tr>
                               ';
                                }
                                $tbl .= '</tbody>
                           </table>';

                                echo $tbl;

}

就像我说的那样,当页面加载显示数据时,某些东西正在工作,但是当我向数据库添加新数据时,它不会自动显示.我希望函数调用并刷新数据.对不起,我对javascript和jQuery还是很陌生,所以请对我轻松一点:)

感谢大伙们

解决方法:

要每15秒刷新一次(每分钟4次),应使用setInterval函数代替setTimeout.

您的代码将如下所示:

$(document).ready (function () {
    var updater = setInterval (function () {
        $('div#user_table').load ('get_new_data', 'update=true');
    }, 25000);
});

编辑:但是,如果您要确保不超载页面,并按要求先加载数据,然后定期刷新.您必须执行以下操作:

>第一次加载数据.
>完成后,调用setTimeout以在25秒内刷新.
>刷新页面后,调用SetTimeout在25秒内刷新它.
>一次又一次.

这比使用setInterval更好.为此,您必须使用jQuery加载函数http://jqapi.com/#p=load的完整回调.

function refresh() {
    setTimeout(function() {
          $('div#user_table').load ('get_new_data', 'update=true', refresh);
    }, 25000);
}

$(document).ready (function () {
    $('div#user_table').load ('get_new_data', 'update=true', refresh);
});
上一篇:js控制 页面回退刷新数据


下一篇:php curl模拟post请求提交数据