如何使用ajax加载数据而不刷新页面

时间:2015-09-17 22:01:53

标签: php jquery ajax

这是我加载数据的代码

$(document).ready(function() {         
    $.get('get-answers.php', { 
        project_question_id: <?=$project_question_id?>,
        project_id: <?=$project_id?>
    }, function(data) {
        $('#dispaly-answers').append(data);
    });  
});

此代码从数据库中检索数据并正常工作。但问题是,如果我在数据库上添加新数据,那么没有页面刷新就不会显示这些数据。 所以我不想刷新页面来获取数据。一旦将新数据添加到数据库,就应该显示它。 关于这个问题的任何建议? P.S:我也试过.ajax(),没用。

这是我的$ .ajax()请求 $(document).ready(function(){

 $.ajax( {
type: "GET",                 
url: "get-answers.php",                 
data: { project_question_id: <?=$project_question_id?>,
        project_id: <?=$project_id?>
        },
cache: false,                  

  success: function(data) {   
  $('#dispaly-answers').append(data);                      

           },// success                 

    })// ajax   

});

与$ .get()

相同

4 个答案:

答案 0 :(得分:1)

如果您的目标是在不刷新页面的情况下刷新页面数据,则可以将代码置于间隔计时器中,并让它每x秒自动刷新一次,如下所示。

setInterval(getAnswer(), 1000); 

注意:setInterval会一次又一次地触发,直到你清除它为止,而setTimeout只会触发一次。

答案 1 :(得分:0)

Ajax-Function只被调用一次:文档就绪(完全加载)。你必须使用setTimeout来创建一个计时器,它每分钟或任何你想要的调用函数。像这样:

function getData() {
    setTimeout(function(){ 
        $.get('get-answers.php', { 
             project_question_id: <?=$project_question_id?>,
             project_id: <?=$project_id?>
        }, function(data) {
            $('#dispaly-answers').append(data);
            getData();
        });  
    }, 3000);
}

答案 2 :(得分:0)

这是我最后的方法  $(document).ready(function(){

     setInterval(function(){ 
        $.ajax( {
              type: "GET",                 
               url: "get-answers.php",                 
                 data: { project_question_id: <?=$project_question_id?>,
                         project_id: <?=$project_id?>
                       },
                 cache: false,                   

               success: function(data) {   
                 $('#dispaly-answers').html(data);                      

               },// success                

        })// ajax
    }, 1000);


}); 

无需创建和调用函数getData(),此代码工作正常。此外,我已将.append(数据)更改为.html(数据)。

但我仍然不满意我的代码,因为它不断地从数据库中检索数据使数据服务器忙碌。

无论我想做什么任务都必须完成并完成。

答案 3 :(得分:0)

尝试此操作,您只需要用您的文件替换这个文件restore_query.php和此id query-div。

setInterval(function(){ 
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
            $('#query-div').html(this.responseText);
          }
        };
        xmlhttp.open("GET","retrieve_query.php",true);
        xmlhttp.send();
    },1000);