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

私の見方では、2つの選択肢があります。

  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 に答える