サイトに絞り込みとソート機能を実装しようと考えています。
具体的には、
checkboxにチェックが入っているものを表示し、
複数ある場合は値が大きい方を上に表示する感じになります。
html
1<form id="form" name="search" action=""> 2 <div> 3 <p>色</p> 4 <label><input name="checkbox[]" type="checkbox" value="1">オレンジ</label> 5 <label><input name="checkbox[]" type="checkbox" value="2">紫</label> 6 </div> 7 <div> 8 <p>旬</p> 9 <label><input name="checkbox[]" type="checkbox" value="2">2月</label> 10 <label><input name="checkbox[]" type="checkbox" value="8">8月</label> 11 <label><input name="checkbox[]" type="checkbox" value="10">10月</label> 12 </div> 13 <button class="submit" value="検索">検索</button> 14</form>
js
1// 検索が押された時の処理 2var value_each = []; 3$('input[name="checkbox[]"]:checked').each(function(){ 4 value_each.push($(this).val()); 5}); 6console.log(value_each); 7 8・・・ 9 10var query = {}; 11var results = _.where(dataArray, query);
全てにチェックを入れた場合value_eachの中身(Chromeのconsoleで表示)
(5) ["1", "2", "2", "8", "10"] 0:"1" 1:"2" 2:"2" 3:"8" 4:"10" length:5 __proto__:Array(0)
json
1{ 2 "data":[ 3 { 4 "name":"みかん", 5 "color":"オレンジ", 6 "best":"10月", 7 "sort01":"1", 8 "sort02":"10", 9 }, 10 { 11 "name":"ぶどう", 12 "color":"紫", 13 "best":"8月", 14 "sort01":"2", 15 "sort02":"8" 16 }, 17 ... 18 ] 19}
現在上記のようになっています。(Underscore.jsを使用しています。)
最終的にはチェックされた項目のみを画面に出力をさせたいのですが、
consoleの中が現在
0:"aaa"
のようになっているのですが、
ここの値を最終的に
query の中に{sort01:"2",sort02:"8"}のような形で入れたいため
上記のような
0:"1"
1:"2"
2:"2"
3:"8"
4:"10"
という形ではなく
sort01:"1"
sort01:"2"
sort02:"2"
sort02:"8"
sort02:"10"
上記のような形にしたいのです。
ご教示お願いします。
追記
コードなど訂正しております。
回答2件
あなたの回答
tips
プレビュー