Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблема с кастомизацией корзины заказов

00 голосов
3
Пытаюсь заменить дефолтные кнопки "Обновить" и "Оформить заказ".
Меняю в этих кнопках <input type="submit" ... > на <input type="image" src="some.jpg" ... >
И в том и другом случае происходит отправка формы.
Только в первом случае при нажатии на кнопку "Оформить заказ" происходит переход order.php, а когда кнопка в виде картинки переход не осуществляется.
Примерно то же самое происоходит и с кнопкой "Обновить" - ноа становится неработоспособной, т.е. отмечаешь галочки "Удалить" в товаре, а в резукльтате нажатия на кнопку "Обновить" удаления не происходит.
спросил 27 Дек, 13 от Xolerick (120 баллов)

3 Ответы

00 голосов
Уточнение:

меняю <input type="submit" value="<?= GetMessage("SALE_ORDER")?>" name="BasketOrder">
на <input type="image" src="/images/oformitzakaz.jpg" value="<?= GetMessage("SALE_ORDER")?>" name="BasketOrder">

и <input type="submit" value="<?echo GetMessage("SALE_REFRESH")?>" name="BasketRefresh">
на <input type="image" src="/images/refresh.jpg" value="<?echo GetMessage("SALE_REFRESH")?>" name="BasketRefresh">

файл компонента:
bitrix -> templates -> my -> components -> bitrix -> sale.basket.basket -> basket1 -> basket_items.php
ответил 21 Март, 14 от Xolerick (120 баллов)
00 голосов
Для одной управляющей кнопки на форме можно сделать наподобие такого:
Код
<input type="image" src="/images/oformitzakaz.jpg" value="<?= GetMessage("SALE_ORDER")?>" name="BasketOrder_img"> 
<input type="hidden" value="<?= GetMessage("SALE_ORDER")?>" name="BasketOrder"> 


Но в корзине две кнопки, одна делает редирект на страницу оформления заказа, а другая на текущую страницу. Поэтому, чтобы не трогать код самого компонента, можно воспользоваться либо css, либо js.

вариант на css:
Код
в style.css:

input.refresh_button {
background-color: transparent;
background-image: url('/images/refresh.jpg'); 
background-repeat: no-repeat;
background-position: left top;
border: none; 
width: 100px;
height: 30px;
}

input.order_button {
background-color: transparent;
background-image: url('/images/oformitzakaz.jpg'); 
background-repeat: no-repeat;
background-position: left top;
border: none; 
width: 100px;
height: 30px;
}

в basket_items.php:
<input type="submit" value=" " class="refresh_button" name="BasketRefresh" />
...
<input type="submit" value=" " class="order_button" name="BasketOrder" />


Параметр "value" должен обязательно что-то содержать, пробел, например, т.к. в компоненте происходит проверка strlen()

вариант на js:
Код
в script.js:
function set_value(input_id)
{
   document.getElementById(input_id).value = "Y";
}

в basket_items.php:
<input onclick="set_value('BasketOrder')" type="image" src="/images/oformitzakaz.jpg"  name="BasketOrder_img" /> 
<input id="BasketOrder" type="hidden" value="" name="BasketOrder" /> 


<input onclick="set_value('BasketRefresh')" type="image" src="/images/oformitzakaz.jpg"  name="BasketRefresh_img" /> 
<input id="BasketRefresh" type="hidden" value="" name="BasketRefresh" /> 

а здесь "value" по умолчанию должен быть пустой.

P.S. Да, подобные "глюки" с кнопками-картинками возникают только в IE, если не ошибаюсь.
ответил 13 Июль, 14 от Delp (7,220 баллов)
00 голосов
Спасибо за исчерпывающий ответ. Теперь все работает.
ответил 13 Ноя, 14 от Xolerick (120 баллов)

Похожие вопросы

0 голосов
5 ответов
0 голосов
3 ответов
спросил 07 Март, 14 от Pest (160 баллов)
0 голосов
4 ответов
спросил 17 Март, 13 от Madys (360 баллов)
0 голосов
2 ответов
спросил 06 Апр, 14 от XuwHuK (180 баллов)