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