Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Динамический select

00 голосов
7
Здравствуйте!
Помогите сделать:
выпадающий динамический select, как лучше это сделать в битриксе?
Пример: имеется два select-а :
1) Выбор города
2) Выбор улиц
Если выбран город к примеру Воронеж в первом select, то во втором будет отображаться улицы города Воронеж. И так далее , если выбран Москва, то отображаються улицы города Москва
Все данные имеються в инфоблоках )
спросил 13 Янв, 13 от Storitell (340 баллов)

7 Ответы

00 голосов
Почему то на данный вопрос никто не ответил... :( А тема то актуальная для многих новичков.. Может все таки гуру битрикса пояснят?
ответил 13 Янв, 13 от Flash77 (180 баллов)
00 голосов
сделайте также как в списке партнеров 1С-Битрикс http://www.1c-bitrix.ru/partners/index.php
Заполнять массивы для работы JS - например, через CIBLockElement::GetList http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php или любым другим методом который вы хотите
ответил 14 Янв, 13 от MoKCimKA (140 баллов)
00 голосов
А конкретно куском кода не поделитесь? У меня ситуация почти как у автора первого поста. В РНР я тоже новичок, уже всю голову сломал как это сделать лучше...
ответил 22 Янв, 13 от Flash77 (180 баллов)
00 голосов
Вариант на примере каталога книг без перезагрузки страницы (если данных не слишком много).
Данные вставляются из иблока через GetList/GetNext и кешируются (см класс CIBlockElement).
Если много - то надо сюда прикрутить ajax.
Код
<script> 
var hash = {101: {10:'Московский Автор',20:'Питерский Автор',30:'Ростовский Автор'},
         102: {40:'Немецкий Автор',50:'Американский Автор',60:'Английский Автор'}}
function f(s) {
   a = document.getElementById('auth');a.innerHTML = '';
   for(i in hash[s.value]) {
      o = document.createElement('OPTION');
      o.innerHTML = hash[s.value][i];o.value = i;
      a.appendChild(o);
   }
}
</script> 
<select id="category" onchange="f(this)"> 
   <option value="101">Отчечественные авторы</option> 
   <option value="102">Зарубежные авторы</option> 
</select> 
<select id="auth"> 
   <option>11</option> 
</select> 
<script>f(document.getElementById('category'));</script> 
ответил 14 Июль, 13 от Eddie (2,060 баллов)
00 голосов
Цитата
Дмитрий Якинцев пишет:
Вариант на примере каталога книг без перезагрузки страницы (если данных не слишком много).

Данные вставляются из иблока через GetList/GetNext и кешируются (см класс CIBlockElement).

Если много - то надо сюда прикрутить ajax.

Код
<script> 

var hash = {101: {10:'Московский Автор',20:'Питерский Автор',30:'Ростовский Автор'},

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;102: {40:'Немецкий Автор',50:'Американский Автор',60:'Английский Автор'}}

function f(s) {

&nbsp;&nbsp;&nbsp;a = document.getElementById('auth');a.innerHTML = '';

&nbsp;&nbsp;&nbsp;for(i in hash[s.value]) {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o = document.createElement('OPTION');

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.innerHTML = hash[s.value][i];o.value = i;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.appendChild(o);

&nbsp;&nbsp;&nbsp;}

}

</script> 

<select id="category" onchange="f(this)"> 

&nbsp;&nbsp;&nbsp;<option value="101">Отчечественные авторы</option> 

&nbsp;&nbsp;&nbsp;<option value="102">Зарубежные авторы</option> 

</select> 

<select id="auth"> 

&nbsp;&nbsp;&nbsp;<option>11</option> 

</select> 

<script>f(document.getElementById('category'));</script> 


Здравствуйте,подскажите,а как сделать такое же, но в две ступени? Т.е. при выборе в первом select, меняется второй,а затем при выборе во-втором, меняется третий? Весь нэт облазил,я не супер-программист, а задачу нужно решить срочно. Спасибо.
ответил 19 Окт, 13 от Raff (140 баллов)
00 голосов
поддерживаю - меня тоже интересует данный вопрос! Кстати не нашли ещё решение? очень надо ..
ответил 21 Янв, 14 от yye (220 баллов)
00 голосов
Решение дано нашли. Если не можете сделать сами, то обратитесь в веб-студию (на выбор). А писать куски кода под индивидальную задачу я думаю любитилей нет :)
ответил 10 Май, 14 от LEDOKOL (740 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 13 Авг, 14 от аноним
0 голосов
4 ответов
0 голосов
3 ответов
спросил 08 Март, 14 от InFroO (160 баллов)
0 голосов
0 ответов
0 голосов
2 ответов
спросил 10 Май, 13 от EMkill (120 баллов)