treba...
<div id="xxx0"></div>
<div id="xxx1"></div>
<div id="xxx2"></div>
<script>
var data;
data = {
0: "Hlavní město Praha;Jihočeský kraj;Jihomoravský kraj;Karlovarský kraj;Kraj Vysočina;Královéhradecký kraj;Liberecký kraj;***Moravskoslezský kraj;***Olomoucký kraj;Pardubický kraj;Plzeňský kraj;Středočeský kraj;Ústecký kraj;Zlínský kraj",
//cislokraje
1: {7: "Bruntál;Frýdek-Místek;Karviná;Nový Jičín;***Opava;***Ostrava-město",
8: "***Jeseník;Olomouc;Prostějov..."
},
2: {7: {4: "Hlučín;Kravaře;Opava;Vítkov;Bělá;Bohuslavice;Bolatice;Branka u Opavy;Bratříkovice;Brumovice;Březová;Budišov nad Budišovkou;Budišovice;Čermná ve Slezsku;Darkovice;Děhylov;Dobroslavice;Dolní Benešov;Dolní Životice;Hať;Háj ve Slezsku;Hlavnice;Hlubočec;Hněvošice;Holasovice;Hrabyně;Hradec nad Moravicí;Chlebičov;Chuchelná;Chvalíkovice;Jakartovice;Jezdkovice;Kobeřice;Kozmice;Kružberk;Kyjovice;Lhotka u Litultovic;Litultovice;Ludgeřovice;Markvartovice;Melč;Mikolajice;Mladecko;Mokré Lazce;Moravice;Neplachovice;Nové Lublice;Nové Sedlice;Oldřišov;Otice;Píšť;Pustá Polom;Radkov;Raduň;Rohov;Skřipov;Slavkov;Služovice;Sosnová;Staré Těchanovice;Stěbořice;Strahovice;Sudice;Svatoňovice;Šilheřovice;Štáblovice;Štěpánkovice;Štítina;Těškovice;Třebom;Uhlířov;Velké Heraltice;Velké Hoštice;Větřkovice;Vršovice;Vřesina;Závada",
5: "ostrava1,os2,os3"
},
8: {0: "Jeseník;Javorník;Zlaté Hory..."
}
}
};
function multiselWrite(name,cat) //,data
{
var i, j, arr, el, cat2, str, del,divname;
del = ';';
cat2 = ((''+cat).indexOf(del)>0) ? cat.split(del) : [cat];
j = cat2.length;
divname = name + (j - 1);
el = document.getElementById(divname);
arr = data;
if (arr[j-1])
arr = arr[j-1];
else return;
if (j>1)
{
for (i=1;i<j;i++)
{
if (arr[cat2[i]])
{
arr = arr[cat2[i]];
}
else {
return;
}
}
}
if (el)
{
str = '';
arr = arr.split(";");
str += "\n"+'<option value="'+(cat2.join(del))+'"> --- <\/option>';
for(i=0;i<arr.length;i++)
{
cat2[j] = i;
str += "\n"+'<option value="'+(cat2.join(del))+'">'+arr[i]+'<\/option>';
}
el.innerHTML = "\n"+'<select onchange="multiselRoll(this);" name="sel_' + divname + '">' + str + '<\/select>';
}
}
function multiselRoll(el)
{
var m,n;
m = el.parentNode.id;
m = m.replace(/[^a-zA-Z]+/g,'');
n = el.options[el.selectedIndex].value;
multiselWrite(m,n);
}
function init()
{
multiselWrite('xxx','0');
multiselWrite('xxx','0;7');
multiselWrite('xxx','0;7;4');
}
init();
</script>
nebo
<div id="sel0"></div>
<div id="sel1"></div>
<script>
var data, i;
data = "a,b,c;\
A,B,C;\
D,E,F;\
G,H,I".split(';');
function writeSel(m,n)
{
var i, str, el2;
el2 = document.getElementById('sel'+m);
if (el2 && data[n])
{
str = '';
for(i=0;i<data[n].length;i++)
{str += "\n"+'<option value="'+i+'">'+data[n][i]+'<\/option>';}
el2.innerHTML = "\n"+'<select onchange="roll(this);">' + str + '<\/select>';
}
}
function roll(el1)
{
var m,n;
m = el1.parentNode.id;
m = m.replace(/\D+/,'') * 1 + 1;
n = el1.options[el1.selectedIndex].value * 1 + 1;
writeSel(m,n);
}
function init()
{
for(i=0;i<data.length;i++)
{data[i] = data[i].split(',');}
writeSel(0,0);
writeSel(1,1);
}
init();
</script>