Делюсь, забирайте:
1. Страна по умолчанию выставляется в настройках компонента, или прописывается во входных параметрах кода вызова компонента:
2. Город по умолчанию прописывается в коде вызова (у меня для москвы это - 5020, для Питера 5030, возможно, у вас другие
):
3. Где взять этот самый код города? Наверное, можно посмотреть в браузере код страницы с компонентом, но если это сложно - print_r() вам в помощь.
4. А если нужного пользователю города нет в списке и он выбирает "более другой"?
Посмотрите в п.3 код "другой". У меня это 1205, и он один для всех стран. Можете проверить.
5. Добавляем во входные параметры компонента строку:
Код |
---|
"ONCITYCHANGE" => "othercityselect();"
|
6. В шаблоне компонента (не забыли скопировать?) ищем строку:
Код |
---|
<select name="<?=$arParams["CITY_INPUT_NAME"]?>"<?if (strlen($arParams["ONCITYCHANGE"]) > 0):?> on change="<?=$arParams["ONCITYCHANGE"]?>"<?endif;?>>
|
немного модифицируем:
Код |
---|
<select id="city_list" name="<?=$arParams["CITY_INPUT_NAME"]?>"<?if (strlen($arParams["ONCITYCHANGE"]) > 0):?> on change="<?=$arParams["ONCITYCHANGE"]?>"<?endif;?>>
|
и сохраняем.
7. Теперь идем на страницу, откуда вызывается компонент.
Вставляем после вызова компонента строку:
Код |
---|
<input type="text" name="othercity" id="othercity" size="40" maxlength="40" value="Укажите свой населенный пункт" style="visibility: hidden;">
|
8. На той же странице, в самом низу:
Код |
---|
<sc ript type="text/javascript">
function othercityselect()
{ var selectedcity=docu ment.getElementById("city_list").options[document.getElementById("city_list").selectedIndex].value;
if (selectedcity==1205)
{document.getElementById("othercity").style.visibility="visible";}
else
{document.getElementById("othercity").style.visibility="hidden";};
};
</sc ript>
|
сохраняем.
Код 100% рабочий, гарантий никаких, пользуйтесь на здоровье.
Любые советы по оптимизации и т.п. принимаю с благодарностью.