【问题标题】:Refreshing html table using Jquery Java built on Codeigniter使用基于 Codeigniter 构建的 Jquery Java 刷新 html 表
【发布时间】:2015-09-23 04:10:26
【问题描述】:

伙计们,我有一个来自我在表中呈现的外包表的数据。我正在使用 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 很陌生,所以请放轻松:)

谢谢大家

【问题讨论】:

  • settimeout 函数在 l'y 上调用一次。如果您希望每 1000 毫秒调用一次刷新函数 WAT,则应使用 setinterval 函数代替 settimeout。
  • 是的,但仍然没有显示新数据
  • @SébastienDoncker 谢谢伙计,但我对 Jquery 真的很陌生,你能给我一个例子或重写我的代码吗?请
  • 我真的不希望它每秒加载一次。一分钟4次也适合我。我只想自动拉入新数据
  • 是的,我用谷歌搜索了 setInterval,它对我有用 :)....@SébastienDoncker 你是明星

标签: javascript php jquery codeigniter refresh


【解决方案1】:

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

你的代码会是这样的:

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

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

  1. 第一次加载您的数据。
  2. 完成后,调用 setTimeout 以在 25 秒内刷新。
  3. 刷新页面时,调用 SetTimeout 以在 25 秒内刷新它。
  4. 一次又一次。

这比使用 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);
});

【讨论】:

  • 谢谢你,还有一个问题。如何先加载然后调用间隔。上面发生的情况是在页面加载时显示数据需要很长时间
  • @Zee 我只是编辑我的答案,向您展示如何做到这一点。
猜你喜欢
  • 2012-07-04
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
相关资源
最近更新 更多