# Wert einer combobox abfragen



## LoMo (19. September 2005)

Wie kann man eigentlich den Wert einer Combobox abfragen ? Ich habs mit value probiert hat aber nicht so ganz geklappt.


*Mein Versuch :*

```
function show_wmtt(feldnr)
{
	if(document.getElementById("Art"+feldnr).value <> ''){
		wmtt = document.getElementById("gebiet"+feldnr);
		wmtt.style.display = "inline";
	}
	else {
		wmtt = document.getElementById("gebiet"+feldnr);
		wmtt.style.display = "none";
	}
}
```


----------



## MeinerEiner_80 (19. September 2005)

hi,
  versuche es mal mit 

```
dropdown.options[dropdown.selectedIndex].value
```
 
 *grüssle*
 MeinerEiner


----------



## LoMo (19. September 2005)

```
function show_wmtt(feldnr)
{
	if(dropdown.options[dropdown.selectedIndex].value <> ''){
		wmtt = document.getElementById("gebiet"+feldnr);
		wmtt.style.display = "inline";
	}
	else {
		wmtt = document.getElementById("gebiet"+feldnr);
		wmtt.style.display = "none";
	}
}
```

Funktioniert leider auch nicht.


```
function show_wmtt(feldnr)
{
	if(document.getElementById("Art"+feldnr).options[document.getElementById("Art"+feldnr).selectedIndex].value <> ''){
		wmtt = document.getElementById("gebiet"+feldnr);
		wmtt.style.display = "inline";
	}
	else {
		wmtt = document.getElementById("gebiet"+feldnr);
		wmtt.style.display = "none";
	}
}
```

habs auch mal so testhalber so probiert geht aber auch leider nicht


----------



## MeinerEiner_80 (19. September 2005)

also bei mir funktioniert das wunderbar, wenn ich die das dropwdownmenu folgendermassen definiere:

```
<select name="dropdown" size="1">
 <option value="">""</option>
 <option value="wert1">anzeige1</option>
 <option value="wert2">anzeige2</option>
 </select>
```
 
 und mit 

```
var selected = document.dropdown.options[dropdown.selectedIndex].value
```
 kann ich wunderbar daraufzugreifen. Da steht dann entweder "",wert1 oder wert2.


 Allerdings hab ich keine ahung, was du mit 

```
wmtt = document.getElementById("gebiet"+feldnr);
 wmtt.style.display = "inline";
```
 bezwecken willst. Ich nehm aber mal an, du weist, das  "getElementById" benutzt wird, um auf ein HTML-Element zuzugreifen, das ein id-Attribut besitzt? D.h. damit kannst du nicht auf die dropdown liste zugreifen.

 *grüssle*
 MeinerEiner


----------



## LoMo (19. September 2005)

achsoooooooo. mmh des Problem bei mir is, dass meine dropdown´s variable namen haben und mittels php ausgegeben werden.


```
for($x=1;$x <= 10;$x++){
		echo '<tr>
			<td width="200">
				<select name="Art'.$x.'" id="Art'.$x.'" class="Textfelder">
					<option selected>&nbsp;</option>
					<option>x</option>
					<option>xx</option>
					<option>xxx</option>
					<option>xxxx</option>
					<option>xxxxx</option>
				</select>
			</td>
			<td>
				<input class="Textfelder" name="Eingabe1'.$x.'" id="Eingabe1'.$x.'" maxlength="50" size="50">
			</td>
			</tr>';
	}
```


```
var selected = document.Art(plus den wert, wo ich an die Funktion übergebe).options[Art(plus Wert).selectedIndex].value
```

Aber ich weiss nicht wie ich dass schreiben soll. Weist du vielleicht wie ich das schreiben könnte ?

mfg lomo


----------



## FredNase (19. September 2005)

Hi,

lass in deinem PHP Teil einfach noch ein Onchange im Select-Tag schreiben, der die Funktion aufruft und die Id übergibt:


```
<select name="Art'.$x.'" id="Art'.$x.'" onChange="show_wmtt(id)" class="Textfelder">
```

Dann kannst du in deiner Funktion über die Id auf den entsprechenden Select zugreifen und den Value vom SelectedIndex auslesen:


```
function show_wmtt(id)
{
   var sel = document.getElementById(id);
   var inhalt = sel.options[sel.selectedIndex].value;
   .
   .
   .
}
```

Gruß


----------



## MeinerEiner_80 (19. September 2005)

stimmt,
 muss mich übrigens korrigieren.. natürlich kann man auch einer dropdown liste einen ID tag zuweisen * vor eigener dummheit kopp schüttelt*


----------



## LoMo (19. September 2005)

ok ich probiers mal aus. vielen dank für die hilfe


----------



## LoMo (21. September 2005)

Habs nun mal probiert hat aber nicht ganz geklappt.

*Beispiel:*

```
function action_aendern_und_feld_leeren(aenderung,id)
	{
		var sel = document.getElementById(id);
		var inhalt = sel.options[sel.selectedIndex].value;
		
		alert(inhalt);
                                inhalt = "";
		
		wmtt = document.getElementById("b_wahl");
		wmtt.action = aenderung;
		wmtt.submit();
	}
```

Diese Funktion wird beim onChange Ereigniss einer Combobox ausgeführt. In diesen fall gibt er aber nur einen leeren Text mit der Messagebox aus.

Die Id ist immer die Id der nebenliegenden Combobox. (Id passt hab ich schon überprüft).


```
<select name="Branche2" id="Branche2" onChange="action_aendern_und_feld_leeren('/www2/test.php?Index1=&Anzahl=4&Weiter=0','Unterbranche2')">
```

Die action ändert er und sendet des Formular ab. Aber als value gibt er nix zurück, obwohl was in den Feld drin steht.

Weiss vielleicht jemand woran das liegen könnte ?

mfg lomo


----------



## FredNase (21. September 2005)

Hi,

hast du bei den Options das value - Attribut mit angegeben?


```
<select id='sel1'>
   <option value=''></option>
   <option value='wert1'>Wert1</option>
</select>
```

Wenn nicht, dann gibt er dir nix zurück.


----------



## LoMo (21. September 2005)

achso mmmh value währe echt vorteilhaft . aber irgendwie is es eigenartig hab jetzt die value eingefügt aber jetzt sendet er nicht mehr das formular weg bzw. tut garnix. 

weiss jemand was daran falsch sein könnte ?


```
function action_aendern_und_feld_leeren(aenderung,id)
	{
		alert(id);
		if(trim(id) <> ""){
			var sel = document.getElementById(id);
			var inhalt = sel.options[sel.selectedIndex].value;
			alert(inhalt);
			inhalt = "";
		}
		
		wmtt = document.getElementById("b_wahl");
		wmtt.action = aenderung;
		wmtt.submit();
	}
```


```
<select name="Branche1" id="Branche1" onChange="action_aendern_und_feld_leeren('/www2/test.php?Index1=&Anzahl=1&Weiter=0','Unterbranche1')">
```

Hab ich schonmal erwähnt das JS ziemlich zimperlich ist 

mfg lomo


----------



## FredNase (21. September 2005)

Das sollte aber nix mit den value´s zu tun haben.   

Probiers mal so:

```
function action_aendern_und_feld_leeren(aenderung,id)
{
   id = id.replace(/^\s*|\s*$/g,"");
   
   if(id != "")
   {
      var sel = document.getElementById(id);
      var inhalt = sel.options[sel.selectedIndex].value;
      alert(inhalt);
      inhalt = "";
   }
		
   wmtt = document.getElementById("b_wahl");
   wmtt.action = aenderung;
   wmtt.submit();
}
```


----------

