1

これが私の状況です:

ページの中央に、コンテンツディレクトリがあります。<div id="content"></div>

ページの右側に、<form method="post" action="?p=search">いくつかの入力フィールドと送信ボタンがあります<input type="submit" id="searchButton" />

フォームをに送信するときにAJAXリクエストを実行しています。index.phpこれは、インデックスがすべての環境をロードし、インデックスにとが含まれているためsearch.phpです。

search.phpファイルは、データベースに送信されたクエリによって返される配列をjsonで返します。

このリターンで、リクエストが終了すると、コンテンツdivをデータで更新します。

しかし、検索ボタンをクリックせずにページをリロードするだけで、検索がすべて終了し、デフォルトのページで作成されたメインコンテンツクエリが返されるだけだとは気づいていませんでした。

どうすれば修正できますか?そのための良い習慣はありますか?

ありがとう、ありがとう、ありがとう。

4

1 に答える 1

1

検索でajaxを試すときは、イニシャルを追加する必要があります。

イニシャルがnullでない場合は、ajaxを再度呼び出して$(window).load(function ()、イニシャルを検出してみてください。

イニシャルにはCookieを選択できます。

例えば ​​:

  //assume this call your ajax

  var ajax_search = function(str) {
      $.ajax({
        type: "POST",
        url: "some.php",
        data: $str
      }).done(function( msg ) {
        alert( "Data Saved: " + msg );
        setCookie("IsSubmitSearch", "true", 1);
      });
  }

  // when click submit search
  $("#search").click(function() {
      var str = $("#inputSearch").serialize();
      ajax_search(str);

      return false;
  });

  $(window).load(function () {
      var IsSubmitSearch = getCookie("IsSubmitSearch");
      if (IsSubmitSearch != null && IsSubmitSearch != "") {
          //cookie exists then you refreshed this page(F5, reload button or right click and reload)
          //SOME CODE
          var str = $("#inputSearch").serialize();
          ajax_search(str);
          DeleteCookie("IsSubmitSearch");
       }
       else {
          //cookie doesnt exists then you landed on this page
          //SOME CODE
          setCookie("IsSubmitSearch", "true", 1);
       }
  });
于 2012-10-26T02:42:06.800 に答える