1
Отображение Зон Заказа Выпадающим Списком
Автор kuziomavladimir@yandex.ru, 11 апр. 2018 13:39
зоны заказа выпадающий список
Сообщений в теме: 9
#1
Отправлено 11 Апрель 2018 - 13:39
Как изменить отображение зон заказа выпадающим списком? Вопрос проиллюстрировал на скрине ниже
#2
Отправлено 12 Апрель 2018 - 13:41
kuziomavladimir@yandex.ru (11 Апрель 2018 - 13:39) писал:
Как изменить отображение зон заказа выпадающим списком? Вопрос проиллюстрировал на скрине ниже
Найдите в шаблоне Быстрый заказ код
{% IFNOT order_delivery.zone_list_empty %} {% FOR zone_list %} <div class="zones"> <!-- Заголовок внутри метода доставки, появляется только один раз--> {% IF order_delivery.zone_list.index=1 %} <label for="deliveryId{order_delivery.ID}" class="zones-header">Зоны доставки</label><br /> {% ENDIF %} <input type="radio" class="deliveryZoneRadio inFastOrder" deliveryid="{order_delivery.ID}" id="deliveryZoneId{order_delivery.zone_list.ID}" name="form[delivery][zone_id]" value="{order_delivery.zone_list.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %} checked="checked" rel="true" {% ENDIF %} /> <label class="orderStageDeliveryZoneLabel" for="deliveryZoneId{order_delivery.zone_list.ID}"> {order_delivery.zone_list.NAME} <span class="deliveryZonePrice">{order_delivery.zone_list.END_PRICE | money_format}</span> </label> </div> {% ENDFOR %} {% ENDIF %}замените на
{% IFNOT order_delivery.zone_list_empty %} <select data-deliveryid="{order_delivery.ID}" name="form[delivery][zone_id]" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}class="required"{% ENDIF %}> {% FOR zone_list %} <option value="{order_delivery.zone_list.ID}" data-price="{order_delivery.zone_list.END_PRICE | number_format("0", ",", " ")}" {% IF order_delivery.zone_list.ID=ORDER_FORM_DELIVERY_ZONE_ID %}selected="selected"{% ENDIF %}> {order_delivery.zone_list.NAME} </option> {%ENDFOR%} </select> {% ENDIF %} <div style="display:none;"> {% IFNOT order_delivery.zone_list_empty %} {% FOR zone_list %} <div class="zones"> <!-- Заголовок внутри метода доставки, появляется только один раз--> {% IF order_delivery.zone_list.index=1 %} <label for="deliveryId{order_delivery.ID}" class="zones-header">Зоны доставки</label><br /> {% ENDIF %} <input type="radio" class="deliveryZoneRadio inFastOrder" deliveryid="{order_delivery.ID}" id="deliveryZoneId{order_delivery.zone_list.ID}" name="form[delivery][zone_id]" value="{order_delivery.zone_list.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %} checked="checked" rel="true" {% ENDIF %} /> <label class="orderStageDeliveryZoneLabel" for="deliveryZoneId{order_delivery.zone_list.ID}"> {order_delivery.zone_list.NAME} <span class="deliveryZonePrice">{order_delivery.zone_list.END_PRICE | money_format}</span> </label> </div> {% ENDFOR %} {% ENDIF %} </div>далее найдите в файле main.js код
$(function(){ $('.orderStageDeliveryListTable').on('change','.deliveryRadio',function(){ $('.deliveryRadio,.deliveryZoneRadio').each(function(){ $(this).removeAttr('checked'); }) var id = $(this).val() ,fz = $($('.deliveryZoneRadio[deliveryid='+id+']')[0]); $(this).prop('checked',true); fz.prop('checked',true); if($('.zones').length){ price = fz.next().find('.num').text(); oldPrice = $('tbody[rel='+ id +']').find('.pricefield').find('.num'); if(price != ''){ oldPrice.text(price); } } }) });после вставьте
$('.orderStageDeliveryListTable select').change(function(){ var value = $(this).find('option:selected').attr('data-price'), zone=$(this).find('option:selected').val(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .deliveryRadio').click(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value).parent().parent().show(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryZonePrice:visible').hide(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .zones input[value="' + zone + '"]').trigger('click'); // ставим куки });
#3
Отправлено 12 Апрель 2018 - 15:25
Ирина345 (12 Апрель 2018 - 13:41) писал:
Здравствуйте, извините за долгое ожидание ответа.
Найдите в шаблоне Быстрый заказ код
Найдите в шаблоне Быстрый заказ код
{% IFNOT order_delivery.zone_list_empty %} {% FOR zone_list %} <div class="zones"> <!-- Заголовок внутри метода доставки, появляется только один раз--> {% IF order_delivery.zone_list.index=1 %} <label for="deliveryId{order_delivery.ID}" class="zones-header">Зоны доставки</label><br /> {% ENDIF %} <input type="radio" class="deliveryZoneRadio inFastOrder" deliveryid="{order_delivery.ID}" id="deliveryZoneId{order_delivery.zone_list.ID}" name="form[delivery][zone_id]" value="{order_delivery.zone_list.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %} checked="checked" rel="true" {% ENDIF %} /> <label class="orderStageDeliveryZoneLabel" for="deliveryZoneId{order_delivery.zone_list.ID}"> {order_delivery.zone_list.NAME} <span class="deliveryZonePrice">{order_delivery.zone_list.END_PRICE | money_format}</span> </label> </div> {% ENDFOR %} {% ENDIF %}замените на
{% IFNOT order_delivery.zone_list_empty %} <select data-deliveryid="{order_delivery.ID}" name="form[delivery][zone_id]" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}class="required"{% ENDIF %}> {% FOR zone_list %} <option value="{order_delivery.zone_list.ID}" data-price="{order_delivery.zone_list.END_PRICE | number_format("0", ",", " ")}" {% IF order_delivery.zone_list.ID=ORDER_FORM_DELIVERY_ZONE_ID %}selected="selected"{% ENDIF %}> {order_delivery.zone_list.NAME} </option> {%ENDFOR%} </select> {% ENDIF %} <div style="display:none;"> {% IFNOT order_delivery.zone_list_empty %} {% FOR zone_list %} <div class="zones"> <!-- Заголовок внутри метода доставки, появляется только один раз--> {% IF order_delivery.zone_list.index=1 %} <label for="deliveryId{order_delivery.ID}" class="zones-header">Зоны доставки</label><br /> {% ENDIF %} <input type="radio" class="deliveryZoneRadio inFastOrder" deliveryid="{order_delivery.ID}" id="deliveryZoneId{order_delivery.zone_list.ID}" name="form[delivery][zone_id]" value="{order_delivery.zone_list.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %} checked="checked" rel="true" {% ENDIF %} /> <label class="orderStageDeliveryZoneLabel" for="deliveryZoneId{order_delivery.zone_list.ID}"> {order_delivery.zone_list.NAME} <span class="deliveryZonePrice">{order_delivery.zone_list.END_PRICE | money_format}</span> </label> </div> {% ENDFOR %} {% ENDIF %} </div>далее найдите в файле main.js код
$(function(){ $('.orderStageDeliveryListTable').on('change','.deliveryRadio',function(){ $('.deliveryRadio,.deliveryZoneRadio').each(function(){ $(this).removeAttr('checked'); }) var id = $(this).val() ,fz = $($('.deliveryZoneRadio[deliveryid='+id+']')[0]); $(this).prop('checked',true); fz.prop('checked',true); if($('.zones').length){ price = fz.next().find('.num').text(); oldPrice = $('tbody[rel='+ id +']').find('.pricefield').find('.num'); if(price != ''){ oldPrice.text(price); } } }) });после вставьте
$('.orderStageDeliveryListTable select').change(function(){ var value = $(this).find('option:selected').attr('data-price'), zone=$(this).find('option:selected').val(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .deliveryRadio').click(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value).parent().parent().show(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryZonePrice:visible').hide(); $('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .zones input[value="' + zone + '"]').trigger('click'); // ставим куки });
Большое спасибо, получилось, но теперь нужно, чтобы в карточке товара в условиях доставки тоже всё отображалось выпадающим списком
#4
Отправлено 13 Апрель 2018 - 02:51
Здравствуйте.
Зайдите в раздел Сайт - Редактор шаблонов - Товар - найдите:
замените на:
Зайдите в раздел Сайт - Редактор шаблонов - Товар - найдите:
{% IFNOT goods_delivery.zone_list_empty %} {% FOR zone_list %} <h5>{goods_delivery.zone_list.NAME}</h5> {% IF goods_delivery.zone_list.rules_empty %} <span>Стоимость доставки: <strong>{goods_delivery.zone_list.PRICE | money_format}</strong></span> {% ELSE %} <h6>Стоимость доставки зависит от суммы заказа</h6> {% FOR rules %} <div>Для заказов больше <strong>{goods_delivery.zone_list.rules.SUM_MORE_PRICE | money_format}</strong> - доставка <strong>{goods_delivery.zone_list.rules.PRICE | money_format}</strong></div> {% ENDFOR %} <div>Для заказов меньше <strong>{goods_delivery.SUM_LESS_PRICE | money_format}</strong> - доставка <strong>{goods_delivery.zone_list.PRICE | money_format}</strong></div> {% ENDIF %} {% ENDFOR %} {% ENDIF %}
замените на:
{% IFNOT goods_delivery.zone_list_empty %} <div class="clear"></div><br/> <select id="zone_del"> {% FOR zone_list %} <option value="Стоимость доставки: {goods_delivery.zone_list.PRICE} руб.">{goods_delivery.zone_list.NAME}</h5> {% ENDFOR %} </select> <div id="zone_price">Стоимость доставки: 405 руб.</div> <script> $(document).ready(function() { $('#zone_del').change(function() { var zone_price = $(this).val(); $('#zone_price').text(zone_price);; }); }); </script> {% ENDIF %}
#5
Отправлено 13 Апрель 2018 - 15:49
Большое спасибо!!!
#6
Отправлено 18 Ноябрь 2018 - 01:42
А мне хочется сделать немного иначе
А именно: засунуть все зоны в скрытые блоки - спойлеры.. При выборе переключателя какого-либа типа доставки должен выпадать (отображаться) блок с зонами по этому типу доставки (в том виде, как по умолчанию - с радиопереключателями и указанием цен). При переключении на другой тип доставки, соответственно, его зоны отображаются, предыдущие скрываются.. ну, вы поняли)
Подскажите плз как реализовать?
А именно: засунуть все зоны в скрытые блоки - спойлеры.. При выборе переключателя какого-либа типа доставки должен выпадать (отображаться) блок с зонами по этому типу доставки (в том виде, как по умолчанию - с радиопереключателями и указанием цен). При переключении на другой тип доставки, соответственно, его зоны отображаются, предыдущие скрываются.. ну, вы поняли)
Подскажите плз как реализовать?
#7
Отправлено 11 Январь 2019 - 03:11
#8
Отправлено 12 Январь 2019 - 11:44
Vaccina (11 Январь 2019 - 03:11) писал:
Вообще не то получается ((((
лиса (18 Ноябрь 2018 - 01:42) писал:
А мне хочется сделать немного иначе
А именно: засунуть все зоны в скрытые блоки - спойлеры.. При выборе переключателя какого-либа типа доставки должен выпадать (отображаться) блок с зонами по этому типу доставки (в том виде, как по умолчанию - с радиопереключателями и указанием цен). При переключении на другой тип доставки, соответственно, его зоны отображаются, предыдущие скрываются.. ну, вы поняли)
Подскажите плз как реализовать?
А именно: засунуть все зоны в скрытые блоки - спойлеры.. При выборе переключателя какого-либа типа доставки должен выпадать (отображаться) блок с зонами по этому типу доставки (в том виде, как по умолчанию - с радиопереключателями и указанием цен). При переключении на другой тип доставки, соответственно, его зоны отображаются, предыдущие скрываются.. ну, вы поняли)
Подскажите плз как реализовать?
Нужен не выпадающий список, а спойлер, при нажатии на который будет выпадать полный список адресов с переключателями.
#9
Отправлено 15 Январь 2019 - 06:46
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных