[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта


Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать... » Связанные списки городов, регионов и тп. Как сделать?

Связанные списки городов, регионов и тп. Как сделать?
[1] likbezz [18.05.2013, 20:40]
Сам скрипт:

Код
<script type="text/javascript">
function dynamicSelect(id1, id2) {
          if (document.getElementById && document.getElementsByTagName) {
           var sel1 = document.getElementById(id1);
           var sel2 = document.getElementById(id2);
           var clone = sel2.cloneNode(true);
           var clonedOptions = clone.getElementsByTagName("option");
           refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
           sel1.onchange = function() {
           refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
           }
          }
}
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
          while (sel2.options.length) {
           sel2.remove(0);
          }
          var pattern1 = /( |^)(select)( |$)/;
          var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
          for (var i = 0; i < clonedOptions.length; i++) {
           if (clonedOptions[i].className.match(pattern1) ||
           clonedOptions[i].className.match(pattern2)) {
            sel2.appendChild(clonedOptions[i].cloneNode(true));
           }
          }
}
</script>



Форма добавления имеет ID == addEntForm, дополнительные поля в ней - классы manFlOth1 - manFlOth4
Код
<form id="addEntForm" action="" method="get">
<input name="" type="text" class="manFlOth1" />  
<input name="" type="text" class="manFlOth4" />
</form>


Заменяем их на списки, по выполнению запускаем инициализацию замены:
Код
<script type="text/javascript">
(function(){
var e=$('#addEntForm .manFlOth1'),v=e.val();
e.replaceWith('<select class="manFlOth1" name="manFlOth1" id="region" onchange="sfltrs(this.options[this.selectedIndex].value,1)"> <option style="color: #AAAAAA" value="0">Выберите Регион:</option> <option value="Russ">Россия</option><option value="Ukr">Украина</option><option value="Bel">Беларусь</option></select>');
$('#addEntForm .manFlOth1').val(v);
var e2=$('#addEntForm .manFlOth4'),v2=e2.val();
e2.replaceWith('<select class="manFlOth4" name="manFlOth4" id="gorod"> <option style="color: #AAAAAA" class="0" value="Выберите Город:">Выберите Город:</option> <option class="Russ" value="Москва">Москва</option><option class="Russ" value="Санкт-Петербург">Санкт-Петербург</option><option class="Russ" value="Екатеринбург">Екатеринбург</option><option class="Ukr" value="Киев">Киев</option><option class="Ukr" value="Севастополь">Севастополь</option><option class="Ukr" value="Кировоград">Кировоград</option><option class="Bel" value="Минск">Минск</option><option class="Bel" value="Витебск">Витебск</option><option class="Bel" value="Бобруйск">Бобруйск</option></select>');
dynamicSelect("region", "gorod");
$('#addEntForm .manFlOth4').val(v2);
})();
</script>


Экземпле: http://likbezz.ru/_example/_rest/_2013/p1/dynamicSelect.html


..
Прикрепления: 4137016.png (22.3 Kb)
[2] pc-master09 [20.05.2013, 00:20]
подскажи почему у меня работает данный скрипт?Всё делаю как ты?
[3] likbezz [20.05.2013, 00:56]
pc-master09,
Цитата (pc-master09, Пн, 20.05.2013, 00:20:04)
подскажи почему у меня работает данный скрипт?

Ссылку на то где не работает, дайте, посмотрю.
[4] pc-master09 [20.05.2013, 01:00]
Он работает но фигня в том что при редактирования материала регионы сохраняют выбраное значение а город нет выбераю из списка 3 пункт он кидает меня на первый. http://proverojnui.ucoz.ru/board/

Код
<script type="text/javascript" src="http://proverojnui.ucoz.ru/region_gorod.js"></script>
<script type="text/javascript"><!--window.onload = function() {dynamicSelect("region", "gorod");}//--></script>
<form id="addEntForm" action="#" method="get">
<script type="text/javascript">   
(function(){   
var e=$('#addEntForm .manFlFlt1'),v=e.val();   
e.replaceWith('<select class="manFlFlt1" name="filter1" id="region" onchange="sfltrs(this.options[this.selectedIndex].value,1)"><option style="color: #AAAAAA" value="0">Выберите Регион:</option><option value="1">01 Республика Адыгея</option><option value="2">02 Республика Башкирия</option><option value="3">03 Бурятская республика</option><option value="4">04 Республика Алтай</option><option value="5">05 Республика Дагестан</option><option value="6">06 Ингушская республика</option><option value="7">07 Кабардино-Балкарская республика</option><option value="8">08 Республика Калмыкия</option><option value="9">09 Карачаево-Черкесская республика</option></select>');
$('#addEntForm .manFlFlt1').val(v);})();</script>
<script type="text/javascript">   
(function(){   
var e2=$('#addEntForm .manFlOth1'),v2=e2.val();   
e2.replaceWith('<select class="manFlOth1" name="other1" id="gorod"><option style="color: #AAAAAA" class="0" value="0">Выберите Город:</option><option class="1" value="Чекресск">Чекресск</option><option class="1" value="Чекресск2">Чекресск2</option><option class="2" value="ee">ee</option><option class="2" value="ee">ee</option></select>');
$('#addEntForm .manFlOth1').val(v2);})(); </script></form>


Сообщение отредактировал pc-master09 - Понедельник, 20.05.2013, 01:09
[5] likbezz [20.05.2013, 01:39]
pc-master09,
Цитата pc-master09, Пн, 20.05.2013, 01:00:05
Он работает но фигня в том что при редактирования материала регионы сохраняют выбраное значение а город нет

Вот это уберите.
Код
<script type="text/javascript"><!--window.onload = function() {dynamicSelect("region", "gorod");}//--></script>

А из скрипта что http://proverojnui.ucoz.ru/region_gorod.js
вот это:
Код
window.onload = function() {
       dynamicSelect("region","gorod");
}

И вот сюда добавьте:
Код
$('#addEntForm .manFlOth1').val(v2);


что бы было вот так:
Код
dynamicSelect("region", "gorod");
$('#addEntForm .manFlOth1').val(v2);
Прикрепления: region_gorod.rar (2.4 Kb)
[6] pc-master09 [20.05.2013, 01:51]
НЕ работает появились другие пункты относящиеся к другому региону!

Добавлено (20.05.2013, 01:49)
---------------------------------------------
Ошибся спасибо большое за помощь где я только не искал как это сделать!!!

Добавлено (20.05.2013, 01:51)
---------------------------------------------
Всё работает!

[7] az7777 [05.11.2013, 18:18]
Подскажите мне тоже этот код если вариант как ставить где ставит как работает ?
[8] likbezz [05.11.2013, 19:35]
az7777,
Цитата az7777, Вт, 05.11.2013, 18:18:06
Подскажите мне тоже этот код если вариант как ставить где ставит как работает ?

А зачем он вам, раз вы даже не в курсе что и для чего это?
Все необходимое в первом сообщении темы
[9] az7777 [05.11.2013, 19:41]
я хочу свезать регионы и города ...
[10] likbezz [05.11.2013, 20:25]
az7777,
Цитата az7777, Вт, 05.11.2013, 19:41:51
я хочу свезать регионы и города ...

Все необходимое для этого в первом сообщении темы.
Листинг, краткая инструкция и пример.

Что непонятно, спрашивайте - поясню.
[11] az7777 [05.11.2013, 21:49]
Вот добвил код когда добавляю показывает все норм ... ну кокой год нужно прописать в вид материале чтоб он показывал регионы и как надо искать материал через эти филтрый ?

Добавлено (05.11.2013, 21:49)
---------------------------------------------
Вот добвил код, когда добавляю объявление показывает все нормально ... ну кокой код надо прописать в вид материале чтоб он показывал регионы и городаи как надо искать материал через эти филтрый ?

[12] likbezz [05.11.2013, 23:35]
az7777,
Цитата az7777, Вт, 05.11.2013, 21:49:56
у кокой год нужно прописать в вид материале чтоб он показывал регионы

Те дополнительные поля что вы отвели под них.
В примере - это доп. поле №1 и №4
Соответственно:
Код
$OTHER1$
$OTHER4$


Цитата az7777, Вт, 05.11.2013, 21:49:56
и как надо искать материал через эти филтрый ?

Поиск по дополнительным полям юкоз не осуществляет, кроме модуля ИМ.
[13] az7777 [06.11.2013, 09:32]
Поиск по дополнительным полям юкоз не осуществляет, кроме модуля ИМ.
тогда от неё пользы мало ..а нет такой чтоб через фильтры работали ?
[14] likbezz [06.11.2013, 19:20]
az7777,
Цитата az7777, Ср, 06.11.2013, 09:32:17
тогда от неё пользы мало ..

)) - нет, вы посмотрите, он меня еще и обвиняет.. кашмар ))

Цитата az7777, Ср, 06.11.2013, 09:32:17
а нет такой чтоб через фильтры работали ?

Нет.
[15] az7777 [07.11.2013, 10:27]
) - нет, вы посмотрите, он меня еще и обвиняет.. кашмар
Да нет просто мне очень нужен был этот скрипт )) вам всёровно спасибо )


Полная версия сайта