Связанные списки городов, регионов и тп. Как сделать?
|
|
[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
..
|
|
[2] pc-master09 [20.05.2013, 00:20] |
подскажи почему у меня работает данный скрипт?Всё делаю как ты? |
|
[3] likbezz [20.05.2013, 00:56] |
pc-master09, подскажи почему у меня работает данный скрипт? Ссылку на то где не работает, дайте, посмотрю. |
|
[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, Он работает но фигня в том что при редактирования материала регионы сохраняют выбраное значение а город нет Вот это уберите. Код <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);
|
|
[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, Подскажите мне тоже этот код если вариант как ставить где ставит как работает ? А зачем он вам, раз вы даже не в курсе что и для чего это? Все необходимое в первом сообщении темы |
|
[9] az7777 [05.11.2013, 19:41] |
я хочу свезать регионы и города ... |
|
[10] likbezz [05.11.2013, 20:25] |
az7777, я хочу свезать регионы и города ... Все необходимое для этого в первом сообщении темы. Листинг, краткая инструкция и пример.
Что непонятно, спрашивайте - поясню. |
|
[11] az7777 [05.11.2013, 21:49] |
Вот добвил код когда добавляю показывает все норм ... ну кокой год нужно прописать в вид материале чтоб он показывал регионы и как надо искать материал через эти филтрый ? Добавлено (05.11.2013, 21:49) --------------------------------------------- Вот добвил код, когда добавляю объявление показывает все нормально ... ну кокой код надо прописать в вид материале чтоб он показывал регионы и городаи как надо искать материал через эти филтрый ? |
|
[12] likbezz [05.11.2013, 23:35] |
az7777, у кокой год нужно прописать в вид материале чтоб он показывал регионы Те дополнительные поля что вы отвели под них. В примере - это доп. поле №1 и №4 Соответственно:
и как надо искать материал через эти филтрый ? Поиск по дополнительным полям юкоз не осуществляет, кроме модуля ИМ. |
|
[13] az7777 [06.11.2013, 09:32] |
Поиск по дополнительным полям юкоз не осуществляет, кроме модуля ИМ. тогда от неё пользы мало ..а нет такой чтоб через фильтры работали ? |
|
[14] likbezz [06.11.2013, 19:20] |
az7777, тогда от неё пользы мало .. )) - нет, вы посмотрите, он меня еще и обвиняет.. кашмар ))
а нет такой чтоб через фильтры работали ? Нет. |
|
[15] az7777 [07.11.2013, 10:27] |
) - нет, вы посмотрите, он меня еще и обвиняет.. кашмар Да нет просто мне очень нужен был этот скрипт )) вам всёровно спасибо ) |
|