Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Linkitetyt comboboxit?

Lemtz81 [30.06.2005 16:17:16]

#

Osaisko joku neuvoa kuinka javascriptillä saisi tehtyä sellaiset comboboxit jotka olisivat linkitettyjä toisiinsa, eli kun ensimmäisestä valitsee jonku otsikon, toinen päivittyy sen mukaan...ja jotta asiasta tulisi vielä komplikkaampi, näitä comboboksi pareja pitäisi olla usemapia....

Lemtz81 [30.06.2005 17:57:45]

#

Juu, eil jos jollaki on mielenkiintoa hjelpata...kirjoitin tuossa Javascriptillä toiminnot, jonka avulla Combo 2 päivittyy Combo 1 mukaan...Nyt vain on ongelmana se, kuinka tämä toiminnallisuus laittaa useampaan combo boxi pariin, ilman että kirjoittaa jokaiselle combolle tätä koodia....Onnistuiskohan se periyttämisen avulla?

Olga [30.06.2005 20:07:38]

#

Teet vaan hommalle oman funktion, joka saa parametreinaan tarvittavat tiedot (boksien nimet jne).

Lemtz81 [01.07.2005 08:24:51]

#

ok, toda toda...voiskohan tämän roskan hoitaa kokonaan PHP:llä?
Postitin tuonne php puolelle samaisen ykymyksen, ja neuvottiin scriptiä tehdä....mutta henk. koht. mielummin duunaisin koko homman vaikka PHP:llä... siksi että joillaki javascripti saattaa olla pois päästä ja silloin jää aika isokin osa toteutuksesta näkymättä...jopa kriittinen.

Lemtz81 [01.07.2005 09:32:03]

#

Tuota tässä olisi hieman koodia mitä käyttäny:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
		function Malli(id, malli)
		{
			this.id = id;
			this.malli = malli;
		}

		function Koko(id, id_malli, koko)
		{
			this.id = id;
			this.id_malli = id_malli;
			this.koko = koko;
		}

	MalliArray = new Array(
		<?	$sql = "SELECT DISTINCT nimi FROM ovet";
			$res = mysql_query($sql);
			$i = 1;
			while($row = mysql_fetch_array($res))
			{
				if($i < mysql_num_rows($res))
				{?>
				new Malli(<? echo $i; ?>, "<? echo $row["nimi"]; ?>"),
				<?
				$i++;
				}
				else
				{
				?>
				new Malli(<? echo $i; ?>, "<? echo $row["nimi"]; ?>")
				<?
				};
			}
		?>
	);
	KokoArray = new Array(
		<?
		$sql = "SELECT DISTINCT nimi FROM ovet";
		$res = mysql_query($sql);
		$i = 1;
		$m = 1;
		while($row = mysql_fetch_array($res))
		{
			$temp = $row["nimi"];
			$sql2 = "SELECT id, leveys, korkeus FROM ovet WHERE nimi = '$temp'";
			$ret = mysql_query($sql2);
			while($rowo = mysql_fetch_array($ret))
			{
				if($i < mysql_num_rows($res))
				{
				?>
				new Koko(<? echo $rowo["id"]; ?>, <? echo $i; ?>, "<? echo $rowo["leveys"]; echo("x"); echo $rowo["korkeus"]; ?>"),
				<?
				}
				else
				{
					if($m < mysql_num_rows($ret))
					{
					?>
					new Koko(<? echo $rowo["id"]; ?>, <? echo $i; ?>, "<? echo $rowo["leveys"]; echo("x"); echo $rowo["korkeus"]; ?>"),
					<?
					$m++;
					}
					else
					{
					?>
					new Koko(<? echo $rowo["id"]; ?>, <? echo $i; ?>, "<? echo $rowo["leveys"]; echo("x"); echo $rowo["korkeus"]; ?>")
					<?
					};
				};
			}
		$i++;
		}?>
	);
<?

		$i = 1;
		while($i < 10)
		{?>
		function init(sel_type, sel_style)
		{
			document.product.id_malli<? echo $i; ?>.options[0] = new Option("<? echo $TEXT['valitse']; ?>");
			document.product.id_koko<? echo $i; ?>.options[0] = new Option("<? echo $TEXT['valitse']; ?>");
			for(i = 1; i <= MalliArray.length; i++)
			{
				document.product.id_malli<? echo $i; ?>.options[i] = new Option(MalliArray[i-1].malli, MalliArray[i-1].id);
				if(MalliArray[i-1].id == sel_type)
				  document.product.id_malli<? echo $i; ?>.options[i].selected = true;
			}
			OnChange(sel_style);
		}
		function OnChange(sel_style)
		{
			sel_type_index = document.product.id_malli<? echo $i; ?>.selectedIndex;
			sel_type_value = parseInt(document.product.id_malli<? echo $i; ?>[sel_type_index].value);
			for(i = document.product.id_koko<? echo $i; ?>.length - 1; i > 0; i--)
				document.product.id_koko<? echo $i; ?>.options[i] = null;
			j=1;
			for(i = 1; i <= KokoArray.length; i++)
			{
				if(KokoArray[i-1].id_malli<? echo $i; ?> == sel_type_value)
				{
					document.product.id_koko<? echo $i; ?>.options[j] = new Option(KokoArray[i-1].koko, KokoArray[i-1].id);
					if(KokoArray[i-1].id == sel_style)
					document.product.id_koko<? echo $i; ?>.options[j].selected = true;
					j++;
				}
			}
		}
		<?
		$i++;
		} ?>
//-->
</SCRIPT>

Eli tuossa on scripti ja sitten index.php tiedostoon laitan seuraavan:

<td colspan="1" class="teksti" align="center">
<select name="id_malli" size="1" style="width: 100px;" onChange="OnChange()"></select></td>

<td colspan="1" class="teksti" align="center">
<select name="id_koko" size="1" style="width: 100px;"></select></td>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
	alusta();
//-->
</SCRIPT>

Miten tuon voisi monista useampaan comboboxiin?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta