---
title: "Drop down i flera nivåer.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/153712-drop-down-i-flera-nivåer"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "webbSAJTEN"
published: "2006-11-13T16:18:18.000Z"
updated: "2006-11-15T20:56:18.000Z"
replies: 14
views: 592
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/153712-drop-down-i-flera-nivåer"
---

# Drop down i flera nivåer..

## #1 — webbSAJTEN, 2006-11-13T16:18Z

Tjenare!
För ett tag sedan såg jag en artikel på IDG om hur man kunde styra vad som skulle visas med hjälp av drop down-menyer.
Alltså om jag väljer Sverige så dykerdet upp en ny drop down med alla städer i Sverige och samma sak om jag väljer Norge.

Nu är det så att jag inte hittar den artikeln, är det någon som kan hjälpa mig med hur ett sång script ser ut?

Permalänk: https://www.webforum.nu/p/153712

## #2 — bossse, 2006-11-13T16:23Z

Ska du ha den horizontell eller vertikal är första frågan!
Vet man det så är det lättare att hjälpa till.

Permalänk: https://www.webforum.nu/p/1895591

## #3 — webbSAJTEN, 2006-11-13T16:26Z

Dom skall vara vertikala :)

Permalänk: https://www.webforum.nu/p/1895593

## #4 — nitro2k01, 2006-11-13T16:34Z

[SuckerTree](http://www.dynamicdrive.com/style/csslibrary/item/suckertree-menu-vertical/)!

Permalänk: https://www.webforum.nu/p/1895595

## #5 — webbSAJTEN, 2006-11-13T16:58Z

Det var inte så jag menade.
I en drop down-meny finns olika alternativ.
Beroende på vilken jag väljer dyker det upp en ny meny under den med nya alternativ..
Hoppas ni förstår..

Permalänk: https://www.webforum.nu/p/1895600

## #6 — Danne V, 2006-11-13T17:47Z

Kolla på javascriptade dropdownmenyer på <http://www.hotscripts.com>. Skulle inte förvåna mig om t.ex. <https://www.dynamicdrive.com> har når heller.

Permalänk: https://www.webforum.nu/p/1895618

## #7 — bossse, 2006-11-13T18:24Z

Svårt detta med att förklara en dropdown.
Ska det va nåt i stil med den jag har på min sida ?
Du kan ju kolla [HÄR](http://norrtalje.web.surftown.se) 
Går att anpassa en del f.ö.

Permalänk: https://www.webforum.nu/p/1895627

## #8 — Erik Juhlin, 2006-11-13T19:16Z

Satte ihop en liten klass/funktion. :)

```
function CountryCity(formName, countryFieldName, cityFieldName)
{
	var countryField;
	var cityField;
	var countryCity = {
		"England" : ["Liverpool", "London", "Manchester"],
		"Italien" : ["Rom", "Milano", "Turin"],
		"Spanien" : ["Barcelona", "Madrid", "Valencia", "Sevilla"],
		"Sverige" : ["Helsingborg", "Stockholm", "Göteborg", "Malmö"]
	}
	
	function load()
	{
		countryField = document.forms[formName][countryFieldName];
		cityField = document.forms[formName][cityFieldName];
		
		loadCountry();
	}
	
	function loadCountry()
	{
		for (var k in countryCity)
			countryField.options[countryField.options.length] = new Option(k, k);
		
		if (countryField.addEventListener)
			countryField.addEventListener("change", loadCity, false);
		else if (countryField.attachEvent)
			countryField.attachEvent("onchange", loadCity);
		
		loadCity();
	}
	
	function loadCity()
	{
		cityField.options.length = 0;
		
		var city = countryCity[countryField.options[countryField.selectedIndex].value];
		
		for (var i = 0; i < city.length; i++)
			cityField.options[i] = new Option(city[i], city[i]);
	}
	
	if (window.addEventListener)
		window.addEventListener("load", load, false);
	else if (window.attachEvent)
		window.attachEvent("onload", load);
}
```

Sen för att använda den:

```
<script type="text/javascript">
new CountryCity("frm", "country", "city");
</script>

<form name="frm">
	<select name="country">
	</select>
	<select name="city">
	</select>
</form>
```

Permalänk: https://www.webforum.nu/p/1895647

## #9 — Erik Juhlin, 2006-11-14T16:21Z

Hjälpte det dig?

Permalänk: https://www.webforum.nu/p/1898775

## #10 — Danne V, 2006-11-14T20:07Z

> **bossse skrev:**
>
> Svårt detta med att förklara en dropdown.
> Ska det va nåt i stil med den jag har på min sida ?
> Du kan ju kolla [HÄR](http://norrtalje.web.surftown.se) 
> Går att anpassa en del f.ö.

Jag tror han menade drop downs som genereras av själva webbläsaren/systemet. Gjorde nåt liknande för några år sedan med javascript. Väldigt omständiga historier, så koden är verkligen inget att skryta med. Men dom funkar galant och validerar. Börja ett köp här: <http://visionary-world.com/bikes-vietnam-book-order.shtml> och se vad som händer....
Är det nåt sånt?

Permalänk: https://www.webforum.nu/p/1898830

## #11 — Erik Juhlin, 2006-11-15T07:43Z

Inte alls svårt att göra så att städerna inte visas om man inte valt något land.
Att använda Iframes för detta är inte en så snygg lösning. Räcker med bara JavaScript. Har man väldigt mycket länder och städer så skulle man kunna använda Ajax för att inte behöva ladda in allt på en gång.

Permalänk: https://www.webforum.nu/p/1898891

## #12 — Cornelia, 2006-11-15T19:35Z

> **Erik Juhlin skrev:**
>
> Satte ihop en liten klass/funktion. :)
>
>
> ```
> function CountryCity(formName, countryFieldName, cityFieldName)
> {
> 	var countryField;
> 	var cityField;
> 	var countryCity = {
> 		"England" : ["Liverpool", "London", "Manchester"],
> 		"Italien" : ["Rom", "Milano", "Turin"],
> 		"Spanien" : ["Barcelona", "Madrid", "Valencia", "Sevilla"],
> 		"Sverige" : ["Helsingborg", "Stockholm", "Göteborg", "Malmö"]
> 	}
> 	
> 	function load()
> 	{
> 		countryField = document.forms[formName][countryFieldName];
> 		cityField = document.forms[formName][cityFieldName];
> 		
> 		loadCountry();
> 	}
> 	
> 	function loadCountry()
> 	{
> 		for (var k in countryCity)
> 			countryField.options[countryField.options.length] = new Option(k, k);
> 		
> 		if (countryField.addEventListener)
> 			countryField.addEventListener("change", loadCity, false);
> 		else if (countryField.attachEvent)
> 			countryField.attachEvent("onchange", loadCity);
> 		
> 		loadCity();
> 	}
> 	
> 	function loadCity()
> 	{
> 		cityField.options.length = 0;
> 		
> 		var city = countryCity[countryField.options[countryField.selectedIndex].value];
> 		
> 		for (var i = 0; i < city.length; i++)
> 			cityField.options[i] = new Option(city[i], city[i]);
> 	}
> 	
> 	if (window.addEventListener)
> 		window.addEventListener("load", load, false);
> 	else if (window.attachEvent)
> 		window.attachEvent("onload", load);
> }
> ```
>
> 
> Sen för att använda den:
>
>
> ```
> <script type="text/javascript">
> new CountryCity("frm", "country", "city");
> </script>
> 
> <form name="frm">
> 	<select name="country">
> 	</select>
> 	<select name="city">
> 	</select>
> </form>
> ```

Nu är det ju inte jag som startade tråden men jag är också intresserad av en sådan här kod. Kan man på något sätt koppla detta till en databas? Så att den hämtar alla länder och sedan alla städer alltså

Permalänk: https://www.webforum.nu/p/1899071

## #13 — Peter S, 2006-11-15T19:36Z

Ja, det är bara att loopa ut all relevant information enligt

```
	var countryCity = {
		"England" : ["Liverpool", "London", "Manchester"],
		"Italien" : ["Rom", "Milano", "Turin"],
		"Spanien" : ["Barcelona", "Madrid", "Valencia", "Sevilla"],
		"Sverige" : ["Helsingborg", "Stockholm", "Göteborg", "Malmö"]
	}
```

Permalänk: https://www.webforum.nu/p/1899073

## #14 — Cornelia, 2006-11-15T20:10Z

Men om vi säger att jag har lagt in England i databasen. Om databasen ser ut så här:
id
land
stad

Hur gör man då för att endast alla städer som börjar på L från England ska visas? Jag är rätt newbie så försök hålla det på en lättförståelig nivå :)

Permalänk: https://www.webforum.nu/p/1899079

## #15 — Peter S, 2006-11-15T20:56Z

Nu vet jag inte vilket serverspråk du använder, men med lite pseudokod kan det se ut så här:

```
print "var countryCity = {"

rs = SQL_Execute("select stad from tbl where land = 'England' and stad like 'L%'")

if not rs is eof:
  entry = "\"England\" : ["
  while not rs is EOF:
    entry = entry + "\"" + rs("stad") + "\","
    rs = rs.next
  end while

  // ersätt det sista kommatecknet med en höger hakparentes
  entry[entry.length - 2] = "]"
end if

if entry.length > 0:
  print entry
end if

print "}"
```

Typ  :)

Permalänk: https://www.webforum.nu/p/1899093

---

Tråden på webben: https://www.webforum.nu/amne/javascript/153712-drop-down-i-flera-nivåer
