1

Javaスクリプトを含む2つの選択ボックスがあります。filter1を使用すると、URLがwww.url.com/&filter[]=6827に変わります。これは完璧に機能し、選択したオプションも問題なく機能します。しかし、複数のフィルターを備えたfilter2のような新しい選択ボックスが必要です。以下のように使用すると、URLは次のようになります:www.url.com/&filter[]%3D=6727%26filter[]%3D6728

誰かがこの問題を助けることができますか?私はそれがjqueryにあると思います...それについてはよくわかりません。

<div class="filter1">
  <div class="title">Filter1</div>
    <form action="filter1" method="get" id="input-custom-filter1">   
     <select name="filter[]=" onchange="$('#formFilters').submit();">
     <option value="6725">Option1</option>
     <option value="6726">Option2</option>
     <option value="6727">Option3</option>
     <option value="6728">Option4</option>
     </select>
</div>   
<div class="filter2">
  <div class="title">Filter1</div>
    <form action="filter2" method="get" id="input-custom-filter2">   
     <select name="filter[]=" onchange="$('#formFilters').submit();">


     <option value="6725&filter[]=6726">Option1 & Option2</option>
     <option value="6727&filter[]=6728">Option3 & Option4</option>
         </select>
    </div> 


<script type="text/javascript">
    $(document).ready(function(){
      $('#formFilters').submit() {
            }
        });
    });
</script>
4

4 に答える 4

0

上記の HTML コード フラグメントにはいくつかの問題があります。

  1. =から削除してください<select name="filter[]="。 name 属性はフォーム フィールドの名前を示すためのものです。method="get"を設定すると、ブラウザはURL を構築するために自動的に=を追加します。

  2. <option value="6725&filter[]=6726">あなたの要求を満足させません。value 属性のすべてが特定のフォーム フィールドの値として扱われます。この場合はfilter[]であるため、エンコードされます。そのため、%3Dが表示されます

  3. フォーム フィールドの複数の値を渡すためには使用されません。Naturaly チェックボックスは、この場合のオプションです。

したがって、sencond フォームでは、チェックボックスを使用して複数の値を渡すことができます

<input type="checkbox" name="filter[]" value="6725"/>
<input type="checkbox" name="filter[]" value="6726"/>

ここでも、フォーム フィールド要素のname属性から=を削除してください。

于 2013-03-02T11:19:34.587 に答える
0
<option value="6725&filter[]=6726">Option1 & Option2</option>
<option value="6727&filter[]=6728">Option3 & Option4</option>

オプション値に問題がある場合は、変更してみてください..

于 2013-03-02T11:22:23.370 に答える
0

@gijsnl URL エンコードはデフォルトのブラウザー動作です (フォームgetメソッドを使用しているため)。これをハックするのは良い考えではありません。あなたの場合、複数選択を使用して目標を達成できます。StackOverflow にはすでに投稿があり、

複数の値が選択された HTML リスト ボックスの選択内容を投稿する方法

私の提案は次のとおりです。1. select 要素のname*属性から等号を削除します。2. 1 つのオプション要素に複数の値を追加しないでください。 3.特別な理由がない限り、 getではなくフォームポストを使用してください。

于 2013-03-06T00:33:44.663 に答える
0

コードは、通過するすべてのシンボルを理解するわけではありません。ここで何を達成しようとしているのかはわかりませんが、JavaScript や HTML のエラーではないことは明らかです。ただし、値として 6727&filter[]=6728 を使用するのは悪い考えです。

送信された情報を取得する場所でエラーが発生すると思います。おそらく、URL の定義とリダイレクトでエラーが発生しています。

于 2013-03-02T10:54:05.317 に答える