メモ JavaScript jQuery
作成日: 2022/02/05
1

簡単なこともできなくてかなちみ…

やりたいこと

  • プルダウンAで選んだ情報からプルダウンBの内容を絞り込む
    • プルダウンA:地域
    • プルダウンB:店舗名

できたこと

  • ひとまず地域と店舗名で配列を作成
  • 選択した地域から該当する店舗を取得⇒でも配列で出てきちゃう!!
    • 理想は取得できたshopと合致するvalueのoptionをshow();にすること…あたまが爆発しそう…
<script>
var shop_data = [
   {area: '関東・甲信越', shop:'池袋店'},
   {area: '関東・甲信越', shop:'有楽町店'},
   {area: '中部', shop:'静岡店'},
   {area: '中部', shop:'名古屋店'},
   {area: '関西', shop:'京都店'},
   {area: '関西', shop:'なんば店'},
   {area: '中国・四国', shop:'山口店'},
   {area: '中国・四国', shop:'広島店'}
   {area: '九州・沖縄', shop:'沖縄'}
]
function select_area(area_name){
    // 選択された地域をarea_nameに代入
    area_name=area_name.value
    if(area_name == ""||area_name == "初めて利用"){
        // 未選択or初めて利用を選択したらすべての店舗を表示
        $('select[name="USE_SHOP_TENPO"] option:not(:first-child)').show();
    }else{
        // 地域を選択したらすべて非表示
        $('select[name="USE_SHOP_TENPO"] option:not(:first-child)').hide();		
        // 配列のarea名と同じものを表示させる
            // test 地域名が合致する店舗名を吐き出す
            console.log(shop_data.filter(shop_name => shop_name.area == area_name));
    }
}
</script>

いけたああああああああああああああああ

function select_area(area_name){
    // 選択された地域をarea_nameに代入
    area_name=area_name.value
    if(area_name == ""||area_name == "初めて利用"){
        // 未選択or初めて利用を選択したらすべての店舗を表示
        $('select[name="USE_SHOP_TENPO"] option:not(:first-child)').show();
    }else{
        // 地域を選択したらすべて非表示
        $('select[name="USE_SHOP_TENPO"] option:not(:first-child)').hide();		
        // 配列のarea名と同じものを表示させる
        var selected_area_shops = shop_data.filter(shop_name => shop_name.area == area_name)
        // 配列を順に処理
        $.each(selected_area_shops,
        function(index, val) {
            $('select[name="USE_SHOP_TENPO"] option[value="'+val.shop +'"]').show();
                }
            );
    }
}

アプリを作ってみたいウェブデザイナー。