1

次のコードがあります。

<label class='checkbox'><input type='checkbox'  class='custom_filter' name='kleuren' value='Blauw' data-taxonomy='kleuren' data-category='Blauw'>  Blauw (4) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='kleuren' value='Rood' data-taxonomy='kleuren' data-category='Rood'>  Rood (2) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='kleuren' value='Wit' data-taxonomy='kleuren' data-category='Wit'>  Wit (2) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='kleuren' value='Zwart' data-taxonomy='kleuren' data-category='Zwart'>  Zwart (1) </label> 
<label>provincies</label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Drenthe' data-taxonomy='provincies' data-category='Drenthe'>  Drenthe (6) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Flevoland' data-taxonomy='provincies' data-category='Flevoland'>  Flevoland (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Friesland' data-taxonomy='provincies' data-category='Friesland'>  Friesland (6) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Groningen' data-taxonomy='provincies' data-category='Groningen'>  Groningen (5) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Limburg' data-taxonomy='provincies' data-category='Limburg'>  Limburg (2) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Noord-Brabant' data-taxonomy='provincies' data-category='Noord-Brabant'>  Noord-Brabant (2) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Noord-Holland' data-taxonomy='provincies' data-category='Noord-Holland'>  Noord-Holland (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Overijssel' data-taxonomy='provincies' data-category='Overijssel'>  Overijssel (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Utrecht' data-taxonomy='provincies' data-category='Utrecht'>  Utrecht (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Zeeland' data-taxonomy='provincies' data-category='Zeeland'>  Zeeland (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='provincies' value='Zuid-Holland' data-taxonomy='provincies' data-category='Zuid-Holland'>  Zuid-Holland (0) </label> 
<label>stijlen</label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Amerikaans' data-taxonomy='stijlen' data-category='Amerikaans'>  Amerikaans (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Cabriolet' data-taxonomy='stijlen' data-category='Cabriolet'>  Cabriolet (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Duits' data-taxonomy='stijlen' data-category='Duits'>  Duits (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Engels' data-taxonomy='stijlen' data-category='Engels'>  Engels (8) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Frans' data-taxonomy='stijlen' data-category='Frans'>  Frans (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Italiaans' data-taxonomy='stijlen' data-category='Italiaans'>  Italiaans (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Klassiek' data-taxonomy='stijlen' data-category='Klassiek'>  Klassiek (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Luxe' data-taxonomy='stijlen' data-category='Luxe'>  Luxe (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='stijlen' value='Modern' data-taxonomy='stijlen' data-category='Modern'>  Modern (0) </label> 
<label>merken</label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='merken' value='Austin' data-taxonomy='merken' data-category='Austin'>  Austin (7) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='merken' value='Bentley' data-taxonomy='merken' data-category='Bentley'>  Bentley (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='merken' value='BMW' data-taxonomy='merken' data-category='BMW'>  BMW (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='merken' value='Cadillac' data-taxonomy='merken' data-category='Cadillac'>  Cadillac (1) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='merken' value='Chevrolet' data-taxonomy='merken' data-category='Chevrolet'>  Chevrolet (0) </label> 
<label class='checkbox'><input type='checkbox'  class='custom_filter' name='merken' value='Chrysler' data-taxonomy='merken' data-category='Chrysler'>  Chrysler (0) </label> 


これは、データベース クエリにフィルターを適用するために使用されるフォームを表します。各フィルターがクリックされた後 (チェックボックスが設定されている)、URL HASH が更新され、次のようになる必要があります。

     #provincies=Drehte,Noord-Brabant&kleuren=Wit,Rood

これは、選択した州と色がチェックされている場合の例です。

私はやろうとしました

     var filters = jQuery("#CUSTOM_AJAX_FILTERS").serializeArray();

ここで、filters var はフォームからすべてのデータを配列として取得しますが、常に空の配列を返します。また、data-taxonomy と data-category (Taxonomy = category; & category = filter ) を取得し、window.location.hash で URL ハッシュを取得して、すべてを分割し、新しいデータを追加するか、削除するなどを試みました。しかし、それは良い選択ではありません。
ページを更新せずに ajax を使用して、チェックボックスをオンにして URL ハッシュを簡単に構築する他の解決策があれば教えてください。

ありがとう!

4

1 に答える 1

1

jquerymapとを試してくださいjoin

var CUSTOM_AJAX_FILTERS = $("input:checkbox:checked.custom_filter").map(function(){
    return $(this).val();
}).get().join(",");
于 2013-02-12T11:29:51.560 に答える