Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > передача данных между селектами


Автор: VitaL 27.7.2010, 00:31
Доброе время суток.

Вопрос для знатоков.

у меня есть один селект

Код

<select name="isla">
        <option>Балеарские острова</option>
        <option>Майорка</option>
        <option>Менорка</option>
        <option>Ибица и Форментера</option>
</select>


На этой же странице есть другой селект где пишутся муниципалитеты этих островов.

Как можно сделать, при помощи javascript, так, чтоб при выборе определённого острова в первом селекте во втором отображались только муниципалитеты выбранного острова?

Буду рад любой подсказке, спасибо.

Автор: bars80080 27.7.2010, 00:46
Код

<select name="isla" onchange="fc(this);">
        <option value="1">Балеарские острова</option>
        <option value="2">Майорка</option>
        <option value="3">Менорка</option>
        <option value="4">Ибица и Форментера</option>
</select>

<select name="city" id="city">
        <option value="1">NE</option>
        <option value="2">NW</option>
        <option value="3">SW</option>
        <option value="4">SE</option>
</select>

Код

var listmunicipal = new Array();
listmunicipal[0] = [1, 1, NE];
listmunicipal[1] = [2, 1, NW];
listmunicipal[2] = [3, 2, SE];
listmunicipal[3] = [4, 2, SW];


function fc(s1) {
    var s1v = s1.value;
    var c = listmunicipal.length; var ar = new Array(); var j = 0;
    for(var i = 0; i < c; i++) {
        if(listmunicipal[i][1] == s1v) { ar[i] = new Option(listmunicipal[i][2], listmunicipal[i][0]); j++; }
    }
    var s2 = document.getElementById('city');
    s2.options.length = 0;
    s2.options = ar;
}



Автор: VitaL 27.7.2010, 16:04
bars80080, спасибо что откликнулся.

Видать есть какая то ошибка, когда выбираешь в первом селекте нужный остров то во втором селекте пропадает все....

тут сам код ... balearskie.ru/select.html 

Автор: bars80080 27.7.2010, 20:28
Код

var listmunicipal = new Array();
listmunicipal[0] = [1, 1, 'NE'];
listmunicipal[1] = [2, 1, 'NW'];
listmunicipal[2] = [3, 2, 'SE'];
listmunicipal[3] = [4, 2, 'SW'];
function fc(s1) {
    var s1v = s1.value;
    var c = listmunicipal.length; var ar = new Array(); var j = 0;
    var s2 = document.getElementById('city');
    s2.innerHTML = '';
    for(var i = 0; i < c; i++) {
        if(listmunicipal[i][1] == s1v) { s2.options[j] = new Option(listmunicipal[i][2], listmunicipal[i][0]); j++; }
    }
}


Автор: VitaL 27.7.2010, 23:32
bars80080, спасибо! Все работает на ура!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)