javascript - jtable 表刷新中的单列/字段

标签 javascript php jquery jquery-jtable

我正在使用Jtable用于预订事件。与PHP、MySQL结合。我的问题是,有没有办法每隔 10 秒重新加载一次单列。确切地说,我有这样的东西:

Checkbox  ID  Event Reservations
    +     4   ev1   22
    -     5   ev2   19

我希望每 10 秒重新加载一次预订列,以便登录的用户可以看到更改。现在我可以重新加载整个表格,但这不是我真正需要的,因为每个用户只能预订 9 个事件,而且我需要在左侧有复选框。重新加载整个表格后,我的复选框无法按预期工作。那么有没有办法只重新加载一列呢?我现在的代码是:

window.setInterval(function(){      
    $('#Events').jtable('reload');                                          
}, 10000);

如有任何帮助或建议,我们将不胜感激。

最佳答案

我找到了解决这个问题的方法:

首先在 JS 中创建一个新字段,如下所示:

test: {
        title: 'test',
        display: function (data) {
        var $div = $('<div id="test"">'+data.record.id+'</div>');
        return $div;
        }
},

然后创建一个每 10 秒运行一次的函数并发出 AJAX 请求:

function UpdateRes(){

            $.ajax({
                url: 'Actions.php?action=update',
                type: 'post',
                data: '&kiu='+$kiu,
            }).success(function(data) {
                var jsondata = JSON.parse(data);
                $.each(jsondata.Records, function(i, item) {
                    $('.jtable tr.jtable-data-row').each(function(){
                        if($(this).attr('data-record-key')==item.id){
                            $(this).find('div').html( item.reservations );
                        }
                    })

                });

            }); 
        }

window.setInterval(function(){      
    UpdateRes();
}, 10000);

让您的 JSON 响应如下所示:

{"Result":"OK",
"Records":
[
{"0":"111","id":"111","1":"20","reservations":"20"},
{"0":"127","id":"127","1":"20","reservations":"20"},
{"0":"133","id":"133","1":"20","reservations":"20"},
{"0":"134","id":"134","1":"20","reservations":"20"},
{"0":"135","id":"135","1":"20","reservations":"20"},
{"0":"326","id":"326","1":"20","reservations":"20"}
]}

最后在 Actions.php 中进行 try catch 查询:

else if($_GET["action"] == "update")
{

    //Get records from database
    $result8 = mysqli_query($con,
   "SELECT l.id,(l.max-l.reserviert) as reservations 
   FROM td_res l WHERE 
   l.kiu='" . mysqli_real_escape_string($con,$_POST["kiu"]) . "';");

    //Add all records to an array
    $rows8 = array();
    while($row8 = mysqli_fetch_array($result8))
    {
        $rows8[] = $row8;
    }

    //Return result to jTable
    $jTableResult = array();
    $jTableResult['Result'] = "OK";
    $jTableResult['Records'] = $rows8;
    print json_encode($jTableResult);
}

关于javascript - jtable 表刷新中的单列/字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23511546/

相关文章:

php/mysql查询预订房间数

php - 一个非常奇怪的撇号 MySQL PHP 错误

javascript - 如何获取回车键按下事件中的输入值?

javascript - JQuery 检查 localStorage 是否设置

javascript - 文本框中的 Asp.Net 日期选择器控件

javascript - Object.keys - 需要赋值或函数调用,但看到的是表达式 no-unused-expressions

php - 为什么 PDOStatement 在单次获取时返回 false?

javascript - 系统验证无法使用 jQuery 隐藏表单进行工作

javascript - 转换 jQuery 计时器并重定向以使用分钟和秒,而不仅仅是秒

javascript - 了解事件的前一个处理程序是否返回 false。 IE < 9 中的默认阻止?