1

我有这段代码,它允许我每隔几秒钟重新加载一次页面的内容。

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>
4

1 回答 1

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);
    

听一些与搜索相关的事件(如果焦点不适合这种情况,请自己制作一个):

$('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);
  });
于 2012-12-15T10:35:36.010 回答