Archivlink: javarea.de Forum > JavaScript > 2 arrays vergleichen
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > 2 arrays vergleichen

Pages: [1]

geschrieben von BigAl am 28.11.2006 - 14:24
hallo forum

ich weiß nicht ob ich hier im richtigen unterforum bin. mit hilfe von php und mysql fülle ich 2 selectboxen.

selectbox_a beinhaltet den vorname
selectbox_b beinhaltet den nachname

beide boxen werden in einer schleife gleichmäßig befüllt. ich möchte jetzt mit javascript oder aber auch anderes, wenn es denn geht beide selectboxen vergleichen. wenn ich name(x) oder index(x) aus selectbox_a anklicke, dann soll mit hilfe von javascript der nachname aus selectbox_b ebenfalls automatisch selektiert werden.

ich bin neuling in javascript, kann mir gemand helfen?

geschrieben von Martin am 28.11.2006 - 16:45
Ave,

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 

<?
<html>
<
head>
<
script type="text/javascript">
var 
selFirstName document.getElementByName("select_firstname");
var 
selName document.getElementByName("select_name");

function 
changeNameselection )  {
// selectedIndex kann auch genommen werden, setzt aber vorraus das beide Indexe der Selectboxen gleich sind
var selected parseInt(selection.options[selection.selectedIndex].value);

selName.options[selected].selected "selected";
}

function 
changeFirstNameselection ) {
...
}

</script>
</head>
<body>

Vorname: 
<select name="select_firstname" onChange="changeName(this)">
<option value="1">Klaus</option>
<option value="2">Dieter</option>
<option value="3">Martin</option>
</select>

Nachname:
<select name="select_name" onChange="changeFirstName(this)">
<option value="1">Mustermann</option>
<option value="2">Klausen</option>
<option value="3">Bergziege</option>
</select>
?>



So müsste - denke ich - die Funktion aussehen. (ungetestet)

Mfg Martin

geschrieben von BigAl am 29.11.2006 - 09:47
hallo martin

vielen dank fuer das script. ich habe es so wie es ist übernommen und getestet, leider passiert da nichts.

liegt es vielleicht an den varaibelen, die sind null
var selFirstName = document.getElementById("select_firstname");
var selName = document.getElementById("select_name");


geschrieben von Martin am 29.11.2006 - 16:19
Ave,

du hast Recht mein Fehler. Die select-Elemente verfügen nur über ein name-Attribut. Habs oben ausgebessert.

Mfg martin

geschrieben von Klaush am 01.12.2006 - 09:16
Martin, hast du dein Script getestet?


Hier mal ein Ansatz der funktionieren sollte
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
<script type="text/javascript">

function changeName( selection )
{
	var sel = parseInt(selection.options[selection.selectedIndex].value);
	document.formname.select_name.options[sel-1].selected = true;
}

function changeFirstName( selection )
{
	var sel = parseInt(selection.options[selection.selectedIndex].value);
	document.formname.select_firstname.options[sel-1].selected = true;
}

</script>

<form name="formname" action="">
Vorname:
<select name="select_firstname" onChange="changeName(this)">
<option value="1">Klaus</option>
<option value="2">Dieter</option>
<option value="3">Martin</option>
</select>

Nachname:
<select name="select_name" onChange="changeFirstName(this)">
<option value="1">Mustermann</option>
<option value="2">Klausen</option>
<option value="3">Bergziege</option>
</select>
</form>


BigAl, die farblich markierten Stellen schau dir bitte genau an und versuch es zu verstehen. Wenn du Fragen hast, dann melde dich einfach noch einmal.

Das Ganze bezieht sich nur auf den IndeX.
Wenn du den Value-Wert abfragen möchtest, dann könnte es so aussehen, ist aber nicht wirklich von mir getestet worden:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
function changeName( selection )
{

 var i = document.formname.select_name.selectedIndex;

      for (x = 0; x < document.formname.select_firstname.length; ++x)
 		if (document.formname.select_firstname.options[x].value == document.formname.select_name.options[i].value)
	      document.formname.select_firstname.options[x].selected = true;
}


geschrieben von Martin am 01.12.2006 - 16:20
Ave,

nein - wie eingangs erwähnt - ist das Ganze ungetestet. Den Codeschnipsel hab ich ohne es zu testen hier direkt im Forum geschrieben.

mfg Martin

geschrieben von BigAl am 07.12.2006 - 09:44
ich war jetzt einige tage krank.

klaush, ich habe dein script einfach mal so übernommen und es funktioniert super.

ich danke euch allen und komme demnächst wieder auf euch zurück.


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.