2014-05-07 15 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); 
}