# kleines problemchen beim anfänger



## d4mi4n (31. Aug 2004)

hiho,
ich weiß dies ist nicht gerade ein javascriptforum aber wenni hr schonmal so nen abteilung habt dann schreib ich auch mal da rein:
ich bin heute 3 stunden vor einem problem gesessen und bin nicht dahinter gekommen an was ich hängenbleib, kann mir mal einer erklären warum javascript so sauumständlich ist?


```
<?php 
	$db = mysql_connect(#########);
	if (!$db){ 
		die ("verbindung nicht möglich: " . mysql_error());
	}
?>

<html>
<head>

<SCRIPT language="JavaScript">
<!--
	function checkDev(dev) {
		
		switch(dev){
			case 1:
				var selectBox = document.forms[0].rechner;
				break
			case 2:
				var selectBox = document.forms[0].dose;
				break
			case 3:
				var selectBox = document.forms[0].patchfeld;
				break
			case 4:
				var selectBox = document.forms[0].switch;
				break
			case 5:
				var selectBox = document.forms[0].router;
			default:
				echo "geht nicht";
		}
		
		var destination = selectBox.options[selectBox.selectedIndex].value;
  		if (destination) location.href = destination
	}
	
 }
 
//-->
</SCRIPT>

<head>
<body>
<formname="one">

<table width="300">
<tr align="center">
<td> 
	PC
</td>
<td>
	Dose
</td>
<td>
	Patchfeld
</td>
<td>
	Switch
</td>
<td> 
	Router
</td>
</tr>
<tr align="center">
<td> 
	<select name="rechner" onChange="checkDev(1)" size="1">
	<option></option>
	<?php
	$result = mysql_db_query("verkabelung", "SELECT id_pc FROM rechner ORDER BY id_pc");
	if (!$result){ 
		die ("kann abfrage nicht ausführen: " . mysql_error());
	}
	
	while ($row = mysql_fetch_array($result)){
		echo "<option value=\"index.php?rechner=".$row["id_pc"]."\">1</option>";
	}

		 
	?>
</select>
</td>
<td>
	<select name="dose" onChange="checkDev(2)" size="1">
	<option></option>
	<?php
	$result = mysql_db_query("verkabelung", "SELECT id_dose FROM dose ORDER BY id_dose");
	if (!$result){ 
		die ("kann abfrage nicht ausführen: " . mysql_error());
	}
	
	while ($row = mysql_fetch_array($result)){
		echo "<option value=\"index.php?dose=".$row["id_dose"]."\">1</option>";
	}	

	?>
	</select>
</td>
<td>
<select name="patchfeld" onChange="checkDev(3)" size="1">
	<option></option>	
	<?php
$result = mysql_db_query("verkabelung", "SELECT id_patchfeld FROM patchfeld ORDER BY id_patchfeld");
	if (!$result){ 
		die ("kann abfrage nicht ausführen: " . mysql_error());
	}
	
	while ($row = mysql_fetch_array($result)){
		echo "<option value=\"index.php?patchfeld=".$row["id_patchfeld"]."\">1</option>";
	}


	
	?>
</td>
<td>
	<select name="switch" onChange="checkDev(4)" size="1">
	<option></option>
	<?php
$result = mysql_db_query("verkabelung", "SELECT id_switch FROM switch ORDER BY id_switch");
	if (!$result){ 
		die ("kann abfrage nicht ausführen: " . mysql_error());
	}
	
	while ($row = mysql_fetch_array($result)){
		echo "<option value=\"index.php?switch=".$row["id_switch"]."\">1</option>";
	}	

	
	?>

	
</td>
<td>
	<select name="router" onChange="checkDev(5)" size="1">
	<option></option>
	<?php
	$result = mysql_db_query("verkabelung", "SELECT id_router FROM router ORDER BY id_router");
	if (!$result){ 
		die ("kann abfrage nicht ausführen: " . mysql_error());
	}
	
	while ($row = mysql_fetch_array($result)){
		echo "<option value=\"index.php?router=".$row["id_router"]."\">1</option>";
	}
	
	
	?>
	</select>
	
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
	
	mysql_close($db);
?>
```

mein problem liegt in der funktion checkdev, ich übergebe bei auswahl eines selectfeldes ob es ein rechner, eine dose, ein patchfeld usw ist. 
dann soll automatisch die selbe seite nochmal geladen werden mit einem wert der aus der datenbank kommt, was momentan noch nichts bringt.
nimm ich ifabfragen anstatt des case funktioniert es nur beim ersten select, bei den anderen nicht, würde mich freuen wenn mir jemand helfen könnte, da ist perl oder sonstwas 100000 freundlicher als java script, wie gesagt, ich bekomm die kriese mit dem teil


----------



## akira (31. Aug 2004)

Hi,

probiere mal die Variable "selectBox" vor dem case-Block zu definieren:


```
var selectBox;

switch(dev){
         case 1:
                 selectBox = document.forms[0].rechner; 
                  break;
         // .......
}
```

Außerdem habe ich in Deiner HTML-Seite folgendes entdeckt:


```
<formname="one">
```

was natürlich:


```
<form name="one">
```

heißen muß.



> da ist perl oder sonstwas 100000 freundlicher als java script



Javascript ist schon nicht so toll, aber "unfreundlicher" als PERL, ich weiß ja nicht....


----------



## Roar (31. Aug 2004)

du kannst perl dochnich mit js vergleichen, sind doch völlig unterschiedliche sachen


----------



## d4mi4n (31. Aug 2004)

danke ich versuchs morgen früh gleich mal, also das mit dem form name hab ich einfach so vorhin geschrieben, hab paar sachen rausgelöscht die da nichts zu suchen hatten

stimmt perl ist nicht zu vergleichen, aber es gibt mir wenigstends schöne fehlermeldungen, js bringt ja gar nichts


----------



## akira (31. Aug 2004)

> stimmt perl ist nicht zu vergleichen, aber es gibt mir wenigstends schöne fehlermeldungen, js bringt ja gar nichts



Stimmt schon, aber das ist eher ein Browser-Problem, vorallem im IE. Die JavaScript-Konsole vom Firefox ist da schon wesentlich besser zum debuggen geeignet.


----------



## Gast (1. Sep 2004)

also das ausserhalb des switchblocks zu deklarieren bringt auch nichts...

die js-console sagt mir dauernd:

missing name after . operator line 20
und ein haufen checkDev is not defined, is doch aber defind


----------



## d4mi4n (1. Sep 2004)

die checkdevmeldungfehlermeldung kommt nur wenn ich es aufrufen will versteht sich


----------



## d4mi4n (2. Sep 2004)

so nu hab ich den mist endlich

   document.forms[0].switch

switch ==> reserviert!!!!

und auf sowas kommt man nach 2 tagen...

fazit ==> nie wieder javascript


----------



## bummerland (2. Sep 2004)

d4mi4n hat gesagt.:
			
		

> fazit ==> nie wieder javascript



Sehr gute Entscheidung!  :lol:  :bae:  :applaus:


----------



## Heiko (2. Sep 2004)

becstift hat gesagt.:
			
		

> d4mi4n hat gesagt.:
> 
> 
> 
> ...



Sooo schlimm is es auch nicht, ich arbeite damit jetzt schon 2 Wochen und in Verbindung mit Java-Servlets kann man da die schönsten Dinge machen, ich werd mich da eher noch mehr reinarbeiten, sowohl in Java, wie in JavaScript.


----------



## d4mi4n (2. Sep 2004)

java is sehr geil, hab da auch schon mit rumgewurschtelt, aber javascript mit diesen geilen fehlermeldungen.. naja egal geht


----------



## Illuvatar (2. Sep 2004)

d4mi4n hat gesagt.:
			
		

> java is sehr geil, hab da auch schon mit rumgewurschtelt, aber javascript mit diesen geilen fehlermeldungen.. naja egal geht



 :applaus:  :applaus:


----------



## akira (2. Sep 2004)

Ich finde, ihr geht etwas zu hart mit JavaScript ins Gericht.

Es ist ja nicht so, daß man sich die Scriptsprache im Browser aussuchen könnte. Wenn Applets nicht erlaubt oder erwünscht sind, ist JavaScript eben die einzige Möglichkeit auf Client-Seite Funktionalitäten zu realisieren. Im übrigen benutzt auch dieses Forum JavaScript.


----------



## Illuvatar (2. Sep 2004)

JavaScript ist gut, aber recht nervig zu proggen und unübersichtlich.

Aber wenn man schon "Wer testet ist feige" in der Sig hat :bae:


----------

