結果を表示するページがあります。結果は、(document).ready の ajax リクエストを介してコンテンツ div に読み込まれます。結果は、フォームを使用してフィルタリングできます。$(#filter_form).submit() で ajax リクエストが行われ、コンテンツ div にフィルタリングされた結果が入力されます。ここまでは問題ありません。
結果をクリックすると、結果の詳細が新しいページにロードされます。非 ajax ロードです。戻るボタンをクリックすると、結果ページに戻ります。フォームのチェックボックスは引き続きチェックされていますが、フィルターは結果に適用されていません。明らかに、document.ready では、最初のフィルター処理されていない ajax 要求が行われ、フィルター処理されていない結果が読み込まれます。
私の最初のアイデアは、フォーム要素のいずれかがチェックされているかどうかを確認し、チェックされている場合はフォームを送信する準備ができているページでした。問題は、これを機能させる方法がわからないことです。
フィルタリングされた結果をロードするスクリプトは次のとおりです。
$('#filter_form').submit(function(e){
e.preventDefault();
$.ajax({
url: '<?=base_url().'catalog/show_listings/?';?>'+queryString,
type:'GET',
data: $('form#filter_form').serialize(),
dataType: 'json',
success: function(listings){
$('#result_container').html(listings);
} // End of success function of ajax form
}); // End of ajax call
});
フォーム要素がアクティブかどうかを確認する方法を見つけました:
var validate= false;
$('#requestfilter_from').each(function(){
if($(this).val() != '' || $(this).attr('checked'))
validate = true;
});
2つを組み合わせる方法がわかりません。2番目のスクリプトでajaxリクエストを実行しようとしましたが(そのスクリプトを投稿する必要はもうありません)、結果は得られませんでした。
提案や指針をいただければ幸いです。