jquery post和clear interval根据返回数据

时间:2014-02-01 22:06:29

标签: php jquery post intervals

function searchu(){  
    $.post("search.php", {userid: "<?php echo $userid; ?>"})
    .done(function(data) {  
    $("#chatbox").append( data );
    });
};
var Searchi= setInterval (searchu, 5000);

我正在使用此功能向search.php发送一些数据。而search.php是将数据与数据库匹配,如果匹配则返回结果。等;

if(database match found){
do something
} else {
do not something
}

如果“找到数据库匹配”为真,我想停止间隔。在search.php中使用clearInterval(Searchi);进行了尝试,但它无效。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

您必须在已完成的功能中添加测试是否已完成的方法。如果你刚刚返回纯HTML(这是一种可怕的做法),你可以做类似的事情:

var Searchi= setInterval(searchu, 5000);

function searchu(){  
    $.post("search.php", {userid: "<?php echo $userid; ?>"})
    .done(function(data) {  
       if(data != "No Results Found"){
           window.clearInterval(Searchi);
       }
       $("#chatbox").append( data );
    });
};

但你可能应该返回一个JSON,并检查返回的结果数,而不是直接与你的字符串进行比较。