Kell két legördülő lista (<select> html-elem), az egyikben pl. az országokat, a másikban az városokat tárolod
Az elsőnek pl. az onChange eseményére meg ráültetsz egy eseménykezelőt, ami a második combo elemeit fogja manipulálni az első combo kiválasztott elemének függvényében
Több lehetőség is van, ezek a működés elvi vázlatai:
1.,
Mindkét listát az oldal betöltődésekor betöltöd egy-egy javascript tömbbe és amikor az első változik, akkor a már letöltött js-tömb alapján töltöd fel a másodikat
viszonylag egyszerű leprogramozni és nem kell újratölteni az oldalt minden országválasztáskor de kellően sok adat esetén brutálisan megnöveli a letöltendő oldal méretét a nagy js-tömb
Arra is figyelni kell, h. a második tömb többdimenziós tömb legyen és az első kulcsban pl. az ország azonosítót tárolod:
Kód:
var orszag_arr = new Array();
orszag_arr[0] = 'Magyarország';
orszag_arr[1] = 'Németország';
var varos_arr = new Array();
varos_arr[0] = new Array( 'Békéscsaba', 'Budapest' ); // magyar városok
varos_arr[1] = new Array( 'München', 'Bechstrieth' ); // német városok
2.,
Hasonlít az elsőhöz, de csak egy ország és egy város js-tömböd lesz
- amikor először töltöd be az oldalt, akkor csak az országokat töltöd be a legördülőbe és mivel még nincs kiválasztva országod a városok legördülője üres
- amikor országot választ, akkor submit-olod a legördülőket tartalmazó formot, így újratöltöd az oldalt és már $_GET-ből vagy $_POST-ból tudni fogod, h. melyik országot választotta ki és annak függvényében még php oldalon szelektálod az adatbázisodból az adott ország városait, így csak a kiválaszott ország városait kell letöltened (ilyenkor arra ügyelni kell, h. az oldal újratöltődése után, amikor már van kiválasztott országazonosító, akkor a kiválaszott országot be kell állítani az oldal legenerálásakor az ország-legördülő kiválasztott elemeként)
3.,
a 2., eset egy módosítása, amikor AJAX-os szálon oldod meg a kiválasztott országhoz tartozó városok listájának lekérdezését, tehát lesz egy ország-legördülőd és annak az onChange eseménykezelője egy olyan javascript-függvény meghívása lesz, ami az oldal újratöltődése nélkül közvetlenül az adatbázisból szedi az éppen aktuálisan kiválasztott ország városait
vannak egyéb "vicces" megoldások, pl. a váosok-legördülőjét egy iframe-be beleerőszakolni és csak az iframe tartalmát újratölteni, amikor változik a kiválaszott ország, de az már talán a perverz kategória :]