2014-05-07 18 views
0

我正在使用Jtable进行预订活动。结合PHP,MySQL。我的问题是,是否有办法每10秒钟重新加载一列。正是我有这样的事情:jtable单列/表中的字段刷新

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

我想有柱重新加载每10秒的保留,使得登录的用户可以看到的变化。现在我得到了重新加载整个表的工作,但这不是我真正需要的,因为每个用户只能预订9个事件,而且我需要在左侧有复选框。重新加载整个表格后,我的复选框没有按预期工作。那么有没有办法重新加载一列?我的代码现在是:

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

任何帮助或建议,将不胜感激。

回答

1

我发现围绕着如何解决这个问题的方式:

首先在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到底在做尝试捕捉您的查询:

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); 
}