前提・実現したいこと
jsonファイルがあってそこから
同じキーで異なる値を指定した場合でも
全て取得したい。
該当のソースコード
json
1{ 2 "test":[ 3 { 4 "id": 1, 5 "type":"aaa", 6 "color":"red" 7 }, 8 { 9 "id": 2, 10 "type":"aaa", 11 "color":"blue" 12 }, 13 { 14 "id": 3, 15 "type":"bbb", 16 "color":"blue" 17 }, 18 { 19 "id": 4, 20 "type":"ccc", 21 "color":"blue" 22 }, 23 { 24 "id": 5, 25 "type":"ccc", 26 "color":"green" 27 } 28 ] 29}
js
1var query = $('input:checked').map(function(){ 2 var element = ($(this).attr('name')).replace('[]',''); 3 var obj = {}; 4 obj[element] = $(this).val(); 5 return obj; 6 }).get(); 7 8 //htmlのformからチェックされたnameとvalueがqueryに入ります。 9 query = Object.assign(query['0'],query['1']); 10 11 console.log(query); // 例:{"type":"aaa", "color":"green"} 12 13 // underscore.js 14 var results = _.where(dataArray, query);
上記の
js
1 console.log(query); // 例:{"type":"aaa", "color":"green"}
ですと現在は、"type":"aaa"と"color":"green"を満たしているものがないため何も表示されません
しかし実現したいことは上記の例で
{"id": 1,"type":"aaa","color":"red"},{"id": 2,"type":"aaa","color":"blue"},{"id": 5,"type":"ccc","color":"green"}
が帰ってくるようにしたいです。
そもそも同じーキーで違う値を分けることは可能なのでしょうか?
宜しくお願いします。
追記
ajaxでjsonからデータを持って来ています。
html
1<form id="form" name="search" action=""> 2 <div class="searchRow methodRow"> 3 <p>タイプ</p> 4 <div class="searchContent"> 5 <input type="checkbox" id="type01" name="type[]" value="aaa"><label for="type01">aaa</label> 6 <input type="checkbox" id="type02" name="type[]" value="bbb"><label for="type02">bbb</label> 7 <input type="checkbox" id="type02" name="type[]" value="ccc"><label for="type02">ccc</label> 8 </div> 9 </div> 10 <div class="searchRow rateRow"> 11 <p>色</p> 12 <div class="searchContent"> 13 <input type="checkbox" id="color01" name="color[]" value="red"><label for="color01">赤</label> 14 <input type="checkbox" id="color02" name="color[]" value="blue"><label for="color02">青</label> 15 <input type="checkbox" id="color03" name="color[]" value="green"><label for="color03">緑</label> 16 </div> 17 </div> 18 <button class="submit" value="検索">検索</button> 19 <input type="hidden" name="search_submit" value="1"> 20 </form>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/13 07:32
2018/07/13 07:33
2018/07/13 07:45
2018/07/13 08:01
2018/07/13 08:40
2018/07/13 08:59 編集
2018/07/13 08:59 編集
2018/07/13 09:00
2018/07/13 09:29 編集
2018/07/13 09:42
2018/07/13 10:28