防止在搜索时刷新Ajax

时间:2012-12-15 10:05:54

标签: php ajax jquery

我有这个代码,允许我每隔几秒重新加载页面的内容。

function()
{
$('#lista').show().load('listaupdate.php').fadeIn("slow");}, 3000);

现在问题是,我有一个搜索表单,但是,我在搜索时应该如何防止刷新?

或者它可以刷新好,但是在完成搜索之后,以及在给出结果之后。 这与分页相同,如果我转到第2页,那么它会刷新并带我到第1页。

我该如何解决这个问题? 感谢

搜索表单:

<form action="listasearch.php" method="post">
<select name="kategoria">
  <option value="dyqani_pergjegjes">Dyqani Përgjegjës</option>    
</select> 
<input type="text" name="search">
 <input type="submit">
</form>

1 个答案:

答案 0 :(得分:0)

我看到这一点你有两种选择:

  1. 选项1:使listaupdate.php只返回数据并对其进行AJAX调用,而不是加载并在完整的处理程序中构建标记(这个想法是没有意义重新加载整个页面,包括搜索表单 - 只需要更新的数据)。请参阅http://api.jquery.com/jQuery.get/

  2. 选项2 - 在用户使用搜索字段时取消更新(坦白说不是更好的解决方案,但仍然如此)。做类似的事情:

    var interval = setInterval(function(){
    $('#lista').show().load('listaupdate.php').fadeIn("slow");}, 3000);
    
  3. 听一些与搜索相关的事件(如果焦点不合适,请自己制作一个):

    $('input[name="search"]').on("focus", function(event){
         interval = clearInterval(interval);
    });
    
    // restart it when search is done
    $("form").submit( function(event){
             interval = setInterval(function(){
            $('#lista').show().load('listaupdate.php').fadeIn("slow");}, 3000);
      });