2017-10-28 85 views
0

如何保持id标签点击后ajax发布setTimeout重新加载?如何保持数据ID点击后ajax发布setTimeout重新加载

HTML

<a id="star" class="toto">sort by star</a> 
 
<a id="date" class="toto">sort by date</a> 
 
<div id="online"> 
 
    <!-- SQL_online.php ROW LOAD HERE --> 
 
</div>

JQUERY/AJAX

$(document).ready(function(){ 
 
    load_data(); 
 

 
    function load_data(query) 
 
    { 
 
     $.ajax({ 
 
     url:"SQL_online.php", 
 
     method:"POST", 
 
     data:{query:query}, 
 
     success:function(data) 
 
     { 
 
     $('#online').html(data); 
 
     } 
 
     }); 
 
    \t setTimeout(function(){load_data()}, 10000); /// refresh each 10s 
 
    } 
 

 
    $('.toto').click(function(){ 
 
     var search = $(this).attr('id'); 
 
     console.log (search); 
 
     if(search != '') 
 
     { 
 
     load_data(search); 
 
     } 
 
     else 
 
     { 
 
     load_data(); 
 
     } 
 
    }); 
 

 
    });

当阿贾克斯重装SQL我 “排序” 选项丢失。如何保持“a”选择ID点击?谢谢!

+0

你不能只是发送一个查询到你的函数? setTimeout(function(){load_data(query)},10000); –

+0

不错,但有一个问题。在加载'查询'是未定义的。与您的解决方案的结果是好的,但不留,查询有价值未定义,并在采取点击id后,如果我再次点击其他id查询采取所有的值在一段时间,并跳过/结果:)谢谢 – nickko

+0

我想每个点击的ID创建一个会话重新加载,并且每一个在10秒后重新加载:( – nickko

回答

0

我认为这将帮助您每10秒刷新一次数据,并且您的查询仍然有效。我不知道这是你真正想要的!

$(document).ready(function(){ 
window._intervalId = setInterval(load_data(), 10000); 

function load_data(query) 
{ 
    $.ajax({ 
    url:"SQL_online.php", 
    method:"POST", 
    data:{query:query}, 
    success:function(data) 
    { 
    $('#online').html(data); 
    } 
    }); 

} 

$('.toto').click(function(){ 
    if (window._intervalId !== undefined){ 
    clearInterval(window._intervalId); 
    } 
    var search = $(this).attr('id'); 
    window._intervalId = setInterval(load_data(search), 10000); /// refresh each 10s 
}); 

}); 

让我知道这是你在找什么或不...所以我可以编辑我的答案。

+0

谢谢:)但是没有刷新您的解决方案。在页面加载的div ID“联机”10秒后不刷新,如果我点击<一个ID,数据是正确加载,但div id“联机”不刷新后10s也 – nickko

+0

我刚测试这个代码...它的工作原理:/ –

+0

你确定你的用户'setInterval'?你上面使用了'setTimeout'! –

相关问题