ClassyKidder:
こんにちは私は現在のプロジェクトに取り組んでいますし、ウェブサイトに非常に大きなサイズのデータベースを接続し、データベースからデータを検索するためのAJAXライブ検索を使用するために管理しています。しかし、私はアヤックスのLive Searchのどれもライブバージョンを見つけるためにどこでも探しています。ユーザーの検索とは入るか、単に検索したときに、現在の1を表示私は、データベース内の小さなデータを持っていますが、私はページをしたい場合は罰金であるウェブページ上のデータベースからすべてのデータは、データのみを表示します。現在のAJAXのライブ検索はちょうど、ユーザーが最初に検索せずにWebページ上の表示データにせずに何をするかと同じ機能。これは、Ajaxのライブ検索からJavaScriptコードです:
$(document).ready(function(){
load_data();
function load_data(query)
{
$.ajax({
url:"fetch.php",
method:"POST",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(){
var search = $(this).val();
if(search != '')
{
load_data(search);
}
else
{
load_data();
}
});
});
私は検索ボックスを使用して検索しない限り、私は何もデータが表示されていないページを訪問したときにそうなるように作ることができる変わるか疑問に思うのですか?
El_Vanja:
検索が行われる前にデータのロードを避けるために、あなたはあなたのスクリプトの先頭に関数呼び出しを削除する必要があります。
$(document).ready(function(){
load_data(); // this line needs to be removed
...
}
あなたが明示的に関数を呼び出すときに、それが実行されます。包まれ$(document).ready()
、それは、ページのロード時に機能を実行するために、ブラウザに指示です。
検索ボックスがクリアされた後、データを削除したい場合は、そのようなあなたのイベントハンドラを変更する必要があります。
if (search != '') {
load_data(search);
} else {
// this is where "load_data();" used to be
$('#result').html('');
}
これは、前回の検索での表示要素に追加された可能性があるコンテンツを置き換えます。