in_array will nichts finden

aherzog

Erfahrenes Mitglied
Hallo miteinander.

Irgendwie arbeitet heute Murphys Gesetz absolut gegen mich.

Ich möchte folgendes realisieren.

Es gibt 2 Pulldownmenüs.
Im ersten gebe ich eine Vorschriften-Bezeichnung ein.
Hinter dieser Vorschrift ist in einer DB auch ein Verfahren hinterlegt.
Die Vorschrift und das Verfahren lese ich schon beim erstellen der Seite aus der DB und schreibe in Javascript ein Array.

Das Ergebnis sieht so aus:
HTML:
<script type="text/javascript"> 
var vorschriftenjs = new Array();
vorschriftenjs['1'] = '11*33';
vorschriftenjs['2'] = '1222*3';
vorschriftenjs['3'] = '222*970';
vorschriftenjs['4'] = '234*45634';
vorschriftenjs['5'] = '333333*wertzug';
vorschriftenjs['6'] = '54*970';
vorschriftenjs['7'] = 'neu_test*irgendwas';
</script>
Im 2ten Menü kann ich nun ein Verfahren auswählen. Dies kann (muss aber nicht) zur oben genanten Vorschrift passen.

Nun möchte ich (wenn das Verfahren ausgewählt wird) per Javascript eine Fehlermeldung ausgeben sobald das Verfahren nicht zur Vorschrift passt.

Dazu habe ich folgende Javascript-funktion geschrieben.
HTML:
function check_vorschrift()
{
	var verfahren = document.form_gesch.verfahren.value;
	var vorschrift = document.form_gesch.vorsch_name.value;

	if (in_array(vorschrift+'*'+verfahren, vorschriftenjs))
	{  
		alert ('Ja');
	}
	else
	{
		alert ('Nein');
	}
}

Die Variable Verfahren wie auch die Variable Vorschrift werden korrekt beschrieben.
z.B.
vorschrift = 1222
verfahren = 3

Mein Problem ist nun das die if - Anweisung (also in_array) nicht funktioniert.
Gebe ich folgendes ein:
HTML:
if (vorschrift+'*'+verfahren == '1222*3')
kommt die Ausgabe Ja, was korrekt ist.

Kann mir einer einen Tip geben warum in diesem Fall in_Array nicht funktionieren will?
Ich benutze diesen Befehl öfters und bis jetzt hat er einwandfrei seine Arbeit gemacht.

Gruss und Danke
Andy
 
Ähm...
in_array() ist eine Funktion in PHP, aber nicht in Javascript.
Wundert mich, dass das vorher immer funktioniert haben soll. Schau mal hier, das könntest du als Definition verwenden und dann sollte der Vergleich auch klappen.
 
Hi..

Das es vorher funktioniert hat liegt daran das in_array eine eigene Funktion ist.
Das hab ich total vergessen.
Naja es ist ja Montag :-)


Falls mal jemand die funktion braucht:

HTML:
function in_array (find, arr) 
{  
	for(var i in arr)  
	{
		if (find == arr[i])
		{
			return true;
		}
	}
	return false;
}
 
Zurück