app/template/default/Product/components/set_product.twig line 1

Open in your IDE?
  1. {% block stylesheet %}
  2. <style>
  3. /*                    .pots_section ul{
  4.         display: flex;
  5.         margin-top: 40px;
  6.     }
  7.     .pots_section li{
  8.         width: 200px;
  9.         height: 200px;
  10.         margin-right: 20px;
  11.         cursor: pointer
  12.     }
  13.     .pots_section li img{
  14.         width: 150px;
  15.         height: 150px
  16.     }*/
  17. </style>
  18. {% endblock %}     
  19. {% block javascript %}
  20. <script>
  21.     $(window).on('load',function(){
  22.         let val = $('#form1').find('[name="_token"]').val()
  23.         $('#form2').find('[name="_token"]').val(val)
  24.     });
  25.     $(window).on('load',function(){
  26.         radio_show();
  27.         radio_selected();
  28.     })
  29.     function radio_selected(){
  30.         let set_data = $('#set_block').data('id')
  31.         $('#pot_'+set_data).prop("checked",true)
  32.         $('#pot_'+set_data).parent('li').addClass('selected')
  33.     }
  34.     function radio_show(){
  35.         $('.pots_list').find('li').each(function(){
  36.             $(this).find('input').on('change',function(){
  37.                 let val = $(this).val()
  38.                 let set_data = $('#set_block').data('id')
  39.                 //セットエリアの表示・非表示
  40.                 if(Number(val) !== Number(set_data)){
  41.                     $('#set_block').addClass('none')
  42.                     $('[data-name="show_btn"]').removeClass('none')
  43.                 }else{
  44.                     $('#set_block').removeClass('none')
  45.                     $('[data-name="show_btn"]').addClass('none')
  46.                 }
  47.                 //選択済みの表示・非表示
  48.                 $('.pots_list').find('li').removeClass('selected')
  49.                 $(this).parent('li').addClass('selected')
  50.             })
  51.         });
  52.     }
  53. </script>
  54. <script type="text/javascript">
  55. document.addEventListener('DOMContentLoaded', function() {
  56.     document.querySelector('#form_selected').addEventListener('submit', function(e) {
  57.         var radios = document.querySelectorAll('input[type="radio"]');
  58.         var hasChecked = false;
  59.         for (var i = 0; i < radios.length; i++) {
  60.             if (radios[i].checked) {
  61.                 hasChecked = true;
  62.                 break;
  63.             }
  64.         }
  65.         if (!hasChecked) {
  66.             e.preventDefault();
  67.             alert('お好みの商品をご選択ください。');
  68.         }
  69.     });
  70. });
  71. </script>
  72. {% endblock javascript %}
  73. {% set sets = get_set_product(Product.id,Product.ProductCategories) %}
  74. {% if(sets['option_product'][0] is not defined  ) %}
  75. {% else %}
  76.     <div class="add_option_wrap maxWid mbPad " id="add_option"> 
  77.         <div class="wrap">
  78.             <div class="heading">
  79.                 {{ sets.option_name}}とセットで購入する
  80.             </div>
  81.             <div class="inner">
  82.                             {{ include_dispatch('Product/components/set_product/set_product_selected.twig') }}
  83.                 {% if(sets['set_show'] == "true"  ) %}
  84.                     {# {% else %} #}
  85.                             {{ include_dispatch('Product/components/set_product/set_product_result.twig') }}
  86.                     {% endif %}
  87.                 </div>
  88.             </div>
  89.         </div>
  90.     {% endif %}