を提出した後、私は私のウェブサイト上の製品を通じてフィルタリングするために使用する次のような形式があります。
<div class="top-filter-select-container">
<form method="GET" action="" id="sort-filter-pick">
<select class="selectpicker" id="sort-filter">
<option value="popularity">Sort by Popularity</option>
<option value="ratings">Sort by Ratings</option>
<option value="newest">Sort by Newest</option>
<option value="lowest">Sort by Lowest Price</option>
</select>
</form>
</div>
をオプションがあるとき、私は私のページをリロードしようとしていますjQuery form.submit()
を使用して選択し、SQLクエリでフィルタリングするために使用する選択されたオプションを取得します。私は最終的には、この値を他のフィルタリング値とともに、より複雑なフィルタリングに使用したいと考えています。私のコードをテストする
$(function(){
$('#sort-filter').on('change', function() {
var action = $(this).val();
$("#sort-filter-pick").attr("action", "?sort=" + action);
this.form.submit();
});
});
、私はちょうど私がPOST
代わりのGET
へform method
を変更するが、GET
では動作しない場合、コードが動作するecho isset($_GET['sort']) ? $_GET['sort'] : null;
にしようとしています。 Amazonなどのウェブサイトでは、GET
フォームメソッドが選択オプションからフィルタを適用する際に使用されますが、?sort=
...がフォームが送信された後にページURLに追加されていることに気付きます。 GET
を使用してください。私は同じことをする正しい方法が何であるか疑問に思っていました。
GETの値はフォーム本体では無視されますが、URLパラメータとして渡されます – bxN5
URLにアクションを追加するにはどうすればよいですか?私はそれが私の主な質問だと思います – LaGuille
onchangeイベントでajaxリクエストを行うか、ページを再ロードしてください – bxN5