[QUOTE]Дмитрий Якинцев пишет:
Вариант на примере каталога книг без перезагрузки страницы (если данных не слишком много).
Данные вставляются из иблока через GetList/GetNext и кешируются (см класс CIBlockElement).
Если много - то надо сюда прикрутить ajax.
[CODE]<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> [/CODE][/QUOTE]
Здравствуйте,подскажите,а как сделать такое же, но в две ступени? Т.е. при выборе в первом select, меняется второй,а затем при выборе во-втором, меняется третий? Весь нэт облазил,я не супер-программист, а задачу нужно решить срочно. Спасибо.
Вариант на примере каталога книг без перезагрузки страницы (если данных не слишком много).
Данные вставляются из иблока через GetList/GetNext и кешируются (см класс CIBlockElement).
Если много - то надо сюда прикрутить ajax.
[CODE]<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> [/CODE][/QUOTE]
Здравствуйте,подскажите,а как сделать такое же, но в две ступени? Т.е. при выборе в первом select, меняется второй,а затем при выборе во-втором, меняется третий? Весь нэт облазил,я не супер-программист, а задачу нужно решить срочно. Спасибо.