Доброго времени, уважаемый All.
Помогите разобраться со следующим вопросом.
Используется компонент sale.ajax.locations, и в нем столкнулся с косяком.
Выбор местоположения происходит в 2 этапа, 1 - выбор "страны", 2-й - выбор "города". При выборе города срабатывает OnClick и дергается функция submitForm(), которая подтягивает службы доставки. Все работает.
До момента, когда в списке городов больше 1-го города.
Если город один, то битрикс считает, что его можно не отображать:
В результате получается такая ситуация как на картинке. Т.е. <select>, при выборе которого должен происходить обсчет доставки недоступен. Соответвтенно заставить его сработать без костылей вроде никак.
Битрикс свежий, на Местоположения 2.0 перейти не получится пока.
Как сделать чтобы <select> отображался даже для одного города я знаю, также знаю как заставить сработать submitForm() в такой ситуации. Но это все костыли. Хочу понять, это мой какой-то косяк, или недоработка компоненты? Не хотелось бы править компоненту на практически стандартном функционале.
Спасибо.
Помогите разобраться со следующим вопросом.
Используется компонент sale.ajax.locations, и в нем столкнулся с косяком.
Выбор местоположения происходит в 2 этапа, 1 - выбор "страны", 2-й - выбор "города". При выборе города срабатывает OnClick и дергается функция submitForm(), которая подтягивает службы доставки. Все работает.
До момента, когда в списке городов больше 1-го города.
Если город один, то битрикс считает, что его можно не отображать:
| Код |
|---|
if (count($arResult["CITY_LIST"]) == 1)
$cDisabled = true;
else
$cDisabled = false;
$id = "id=\"".$idAttrValue."\"";
?>
<?if($cDisabled):?>
<div style="display:none">
<?endif?>
<select <?=$id?> <?if($disabled) echo "disabled";?> name="<?=$arParams["CITY_INPUT_NAME"]?>"<?if (strlen($arParams["ONCITYCHANGE"]) > 0):?> oncha nge="<?=$arParams["ONCITYCHANGE"]?>"<?endif;?> type="location">
<option><?echo GetMessage('SAL_CHOOSE_CITY')?></option>
<?foreach ($arResult["CITY_LIST"] as $arCity):?>
<option value="<?=$arCity["ID"]?>"<?if ($arCity["ID"] == $arParams["CITY"]):?> selected="selected"<?endif;?>><?=($arCity['CITY_ID'] > 0 ? $arCity["CITY_NAME"] : GetMessage('SAL_CHOOSE_CITY_OTHER'))?></option>
<?if($arCity["ID"] == $arParams["CITY"]) $cityName = $arCity["CITY_NAME"];?>
<?endforeach;?>
</select>
<?
if($cDisabled):?>
</div>
<?if(strlen($cityName) > 0):?>
<div class="sale_locations_fixed"><?=GetMessage("SAL_LOC_CITY").": ".$cityName?></div>
<?endif;?>
<?endif?>
|
В результате получается такая ситуация как на картинке. Т.е. <select>, при выборе которого должен происходить обсчет доставки недоступен. Соответвтенно заставить его сработать без костылей вроде никак.
Битрикс свежий, на Местоположения 2.0 перейти не получится пока.
Как сделать чтобы <select> отображался даже для одного города я знаю, также знаю как заставить сработать submitForm() в такой ситуации. Но это все костыли. Хочу понять, это мой какой-то косяк, или недоработка компоненты? Не хотелось бы править компоненту на практически стандартном функционале.
Спасибо.