Mehrdimensionale Werteliste

digimike

Grünschnabel
Hallo,

ich hoffe hier das richtige Unterformum getroffen zu haben.
Ich möchte auf meiner Website dem User die Möglichkeit geben aus 2 Auswahlfeldern eine Kombination auszuwählen und daraus dann eine Ausgabe zu erzeugen.

Vom Prinzip nix anderes als in einem Webshop, doch wesentlich einfacher.

Der User wählt aus, ob die Lieferzeit "Normal, Schnell oder Express" sein soll.
Dann welche Verarbeitung "Nur geschnitten, geschnitten und geöst, gesäumt und geöst".

Direkt nach der Auswahl soll der entsprechende Preis dargestellt werden
1m² 20,00 Euro, 5m² 18,00 Euro, 10m² 16,00 Euro (bei Kombination 1)
1m² 25,00 Euro, 5m² 23,00 Euro, 10m² 19,00 Euro (bei Kombination 2), usw.

Ob die Preise nun hardcodet im Script stehen oder aus einer Datei gelesen werden ist erst mal nebensächlich. (Wobei die Variante aus einer Datei auslesen sicherlich komfortabler wäre).

Ach ja, eine gewisse Formatierung als Tabelle, mit erster Preis größer, fett und andere Farbe wäre spitze.

Ich suche seit einigen Wochen schon im www und finde nichts passendes. Vielleicht fehlen mir nur die Suchwörter.

Folgenden Ansatz habe ich mal gefunden:

HTML:
<html>
<head>
<script>
<!--
function Ausgabe(Werte)
{
    Funktion Ausgabe (Hier weiß ich gar nicht weiter)
}
//-->
</script>
</head>
<body>
<form>
<select name="Lieferzeit bitte wählen" onChange="Ausgabe(this.options[this.selectedIndex].value);">
 <option value="Normal">normal</option>
 <option value="Schnell">schnell</option>
 <option value="Express">express</option>
</select>
</form>
</body>
</html>

Leider wäre das auch nur ein eindimensionaler Wert.
Wäre super wenn ich hier eine Antwort finde. Ich denke das man dies auch für noch mehr Dimensionen nutzen könnte.

Schon mal vielen Dank.

Michael
 
Hi,

2D-selects giebts nicht, da brauchst du wohl 2 Stück.
Ich hab dir mal nen Beispiel geschrieben,
wo jetzt einfach ein Text zur Kontrolle ausgegeben wird, muss dann halt die formatierte Tabelle gefüllt werden.
Wenn ich das machen soll, muss ich halt die genauen Preise für jeden Fall un die gewünshte Farbe für den Preis wissen.

Code:
<html>

Hoffentlich hilfts dir weiter, 
javaDeveloper2011

Ps: Natürlich gehört das ins JavaScript-Forum
<head>

	<script type="text/javascript">
		function ausgabe() {
			var lieferzeit = document.getElementById('lieferzeit').selectedIndex;
			var verarbeitung = document.getElementById('verarbeitung').selectedIndex;
			switch(lieferzeit) {
			  case 0:
		  		switch(verarbeitung) {
			      case 0:
					document.getElementById('ausgabe').innerHTML = "Preise bei normal / nur geschnitten";
					break;
				  case 1:
					document.getElementById('ausgabe').innerHTML = "Preise bei normal / geschnitten und ge&ouml;st";
					break;
				  case 2:
					document.getElementById('ausgabe').innerHTML = "Preise bei normal / ges&auml;umt und ge&ouml;st";
					break;
				}
				break;
			  case 1:
				switch(verarbeitung) {
			      case 0:
					document.getElementById('ausgabe').innerHTML = "Preise bei schnell / nur geschnitten";
					break;
				  case 1:
					document.getElementById('ausgabe').innerHTML = "Preise bei schnell / geschnitten und ge&ouml;st";
					break;
				  case 2:
					document.getElementById('ausgabe').innerHTML = "Preise bei schnell / ges&auml;umt und ge&ouml;st";
					break;
				}
				break;
			  case 2:
				switch(verarbeitung) {
			      case 0:
					document.getElementById('ausgabe').innerHTML = "Preise bei express / nur geschnitten";
					break;
				  case 1:
					document.getElementById('ausgabe').innerHTML = "Preise bei express / geschnitten und ge&ouml;st";
					break;
				  case 2:
					document.getElementById('ausgabe').innerHTML = "Preise bei express / ges&auml;umt und ge&ouml;st";
					break;
				}
				break;
			}
		}
	</script>

</head>

<body onload="ausgabe();">

	<!-- Auswahl -->
	<form>
		<table>
			<tr>
				<td>Lieferzeit</td>
				<td>
					<select id="lieferzeit" onChange="ausgabe();">
						<option>normal</option>
						<option>schnell</option>
						<option>express</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>Verarbeitung</td>
				<td>
					<select id="verarbeitung" onChange="ausgabe();">
						<option>nur geschnitten</option>
						<option>geschnitten und ge&ouml;st</option>
						<option>ges&auml;umt und ge&ouml;st</option>
					</select>
				</td>
			</tr>
		</table>
	</form>

	<!-- Ausgabe -->
	<p id="ausgabe"></p>

</body>

</html>

Hoffe, das hilft dir,
javaDeveloper2011

PS: natürlich gehört das hier ins Forum JavaScript
 
Zuletzt bearbeitet:
Hi javaDeveloper2011,

super, vielen Dank. Genauso habe ich mir das vorgestellt.
ich bekomme die Formatierungen in der Tat nicht hin. Wäre spitze wenn ich dich darum noch bitten dürfte. Am besten wäre die Ausgabe in einer tabellarischen Form.

Die Preise wären wie folgt:
normal, nur geschnitten: 1qm=14,90; 10qm=12,90; 25qm=11,90; 50qm=10,50
normal, geöst: 1qm=14,90; 10qm=13,90; 25qm=12,90; 50qm=11,50
normal, gesäumt: 1qm=20,90; 10qm=18,90; 25qm=17,90; 50qm=15,50

schnell, nur geschnitten: 1qm=16,90; 10qm=15,90; 25qm=14,90; 50qm=12,85
schnell, geöst: 1qm=18,90; 10qm=17,90; 25qm=16,90; 50qm=13,85
schnell, gesäumt: 1qm=23,90; 10qm=21,90; 25qm=20,90; 50qm=16,90

express, nur geschnitten: 1qm=19,90; 10qm=18,50; 25qm=17,20; 50qm=15,90
express, geöst: 1qm=21,90; 10qm=19,90; 25qm=18,90; 50qm=16,90
express, gesäumt: 1qm=27,90; 10qm=25,90; 25qm=23,90; 50qm=18,90

Der erste Wert für 1qm etwas größer, fett und in orange. Die restlichen Werte etwas kleiner (als der normale Fließtext) und in blau. Die restlichen Formatierungen bekomme ich dann schon hin.

Dafür hast du dann ein T-Shirt bei mit gut, falls du magst, oder auch was anderes. Größe, Farbe und Motiv frei zur Auswahl. Adresse bitte per PM. Herzlichen Dank schon mal.

Michael
 
@digimike
Vielleicht solltest du dir dieses Shirt lieber selber kaufen mit den Worten

Java != JavaScript

und es dir an die Wand hängen.

Sorry ... aber wer so ignorant selbst einen so AGGRESSIVEN Hinweis missachtet , dem habe ich keine intiligenten Antworten mehr zu entgegnen.
 
Hallo digimike,

Ist fertig, ich hoffe du hast es dir vorgestellt.
Farbig werden jewails nur die Preise (sind doch in €, oder?).
Die Wert habe ich mindestens 3 mal überprüft, müssten also stimmen, schadet aber natürlich nichts wenn du sie auch nochmal durchgehst.

Hier der Code:
Code:
<html>

<head>

	<style>
		#ausgabe td{
			text-align: right;
		}
	</style>

	<script type="text/javascript">
		function ausgabe() {
			var lieferzeit = document.getElementById('lieferzeit').selectedIndex;
			var verarbeitung = document.getElementById('verarbeitung').selectedIndex;
			switch(lieferzeit) {
			  case 0:
		  		switch(verarbeitung) {
			      case 0:
					document.getElementById('price1').innerHTML = "14,90&euro;";
					document.getElementById('price10').innerHTML = "12,90&euro;";
					document.getElementById('price25').innerHTML = "11,90&euro;";
					document.getElementById('price50').innerHTML = "10,50&euro;";
					break;
				  case 1:
					document.getElementById('price1').innerHTML = "14,90&euro;";
					document.getElementById('price10').innerHTML = "13,90&euro;";
					document.getElementById('price25').innerHTML = "12,90&euro;";
					document.getElementById('price50').innerHTML = "11,50&euro;";
					break;
				  case 2:
					document.getElementById('price1').innerHTML = "20,90&euro;";
					document.getElementById('price10').innerHTML = "18,90&euro;";
					document.getElementById('price25').innerHTML = "17,90&euro;";
					document.getElementById('price50').innerHTML = "15,50&euro;";
					break;
				}
				break;
			  case 1:
				switch(verarbeitung) {
			      case 0:
					document.getElementById('price1').innerHTML = "16,90&euro;";
					document.getElementById('price10').innerHTML = "15,90&euro;";
					document.getElementById('price25').innerHTML = "14,90&euro;";
					document.getElementById('price50').innerHTML = "12,85&euro;";
					break;
				  case 1:
					document.getElementById('price1').innerHTML = "18,90&euro;";
					document.getElementById('price10').innerHTML = "17,90&euro;";
					document.getElementById('price25').innerHTML = "16,90&euro;";
					document.getElementById('price50').innerHTML = "13,85&euro;";
					break;
				  case 2:
					document.getElementById('price1').innerHTML = "23,90&euro;";
					document.getElementById('price10').innerHTML = "21,90&euro;";
					document.getElementById('price25').innerHTML = "20,90&euro;";
					document.getElementById('price50').innerHTML = "16,90&euro;";
					break;
				}
				break;
			  case 2:
				switch(verarbeitung) {
			      case 0:
					document.getElementById('price1').innerHTML = "19,90&euro;";
					document.getElementById('price10').innerHTML = "18,50&euro;";
					document.getElementById('price25').innerHTML = "17,20&euro;";
					document.getElementById('price50').innerHTML = "15,90&euro;";
					break;
				  case 1:
					document.getElementById('price1').innerHTML = "21,90&euro;";
					document.getElementById('price10').innerHTML = "19,90&euro;";
					document.getElementById('price25').innerHTML = "18,90&euro;";
					document.getElementById('price50').innerHTML = "16,90&euro;";
					break;
				  case 2:
					document.getElementById('price1').innerHTML = "27,90&euro;";
					document.getElementById('price10').innerHTML = "25,90&euro;";
					document.getElementById('price25').innerHTML = "23,90&euro;";
					document.getElementById('price50').innerHTML = "18,90&euro;";
					break;
				}
				break;
			}
		}
	</script>

</head>

<body onload="ausgabe();">

	<!-- Auswahl -->
	<table cellspacing="8">
		<tr>
			<td>Lieferzeit</td>
			<td>
				<select id="lieferzeit" onChange="ausgabe();">
					<option>normal</option>
					<option>schnell</option>
					<option>express</option>
				</select>
			</td>
		</tr>
		<tr>
			<td>Verarbeitung</td>
			<td>
				<select id="verarbeitung" onChange="ausgabe();">
					<option>nur geschnitten</option>
					<option>geschnitten und ge&ouml;st</option>
					<option>ges&auml;umt und ge&ouml;st</option>
				</select>
			</td>
		</tr>
	</table>

	<!-- Ausgabe -->
	<table id="ausgabe" cellspacing="10">
		<tr>
			<th collspan="2">Preise</th>
		</tr>	
		<tr>
			<td>1qm</td>
			<td id="price1" style="color: orange; font-weight: bold;"></td>
		</tr>
		<tr>
			<td>10qm</td>
			<td id="price10" style="color: blue"></td>
		</tr>
		<tr>
			<td>25qm</td>
			<td id="price25" style="color: blue"></td>
		</tr>
		<tr>
			<td>50qm</td>
			<td id="price50" style="color: blue"></td>
		</tr>
	</table>

</body>

</html>

@SPiKEe
Hier ging es doch nur um eine Nachfrage von mir, das Thema wird dann bestimmt auch bald von einem Moderator verschoben.

Gruß javaDeveloper2011
 
Generell hättest du zwar antworten können ... aber hier im Java-Forum hätte erstmal nur der Hinweis auf das JS-Forum gereicht. Eine so ausführliche Antwort hättest du dann im JS-Forum geben können.
 
@digimike

Sorry ... aber wer so ignorant selbst einen so AGGRESSIVEN Hinweis missachtet , dem habe ich keine intiligenten Antworten mehr zu entgegnen.

Sorry, aber dein mit Farben überfrachteter Hinweis ist bei mir glatt als Werbung durch gegangen. Aber vielleicht kannst du mal wieder sachlich werden und einem blutigem Anfänger sagen, wie man einen Thread in ein anderes Unterverzeichnis verschiebt.

Danke

p.s. Intelligent ist, wer intelligent richtig schreiben kann...
 
Naja ... wer Java und JavaScript nicht aus ein ander halten kann ist für mich genau so dumm wie wenn man mal das Wort Intelligenz falsch schreibt.
 
@Spike
Super, dann erkläre mir doch mal den Unterschied zwischen Prozess Standard Offset und Prozessfarben-Offset.
Oder Strukturanalyse und strukturelle Analyse.
oder ...

Nicht jeder ist als Programmierer geboren. Und ich habe ganz am Anfang kund getan, dass ich bester Absicht in dieses Forum poste.

Im übrigen hat mit != dies erst auch nichts gesagt. Ist im Mathematik schließlich <> oder ein durchgestrichenes Gleichheitszeichen.

Und jetzt ist es gut für mich. Vielleicht ist deine Laus auf deiner Leber auch ein Stück weiter gewandert. Ich hoffe es schließlich für dich, denn deine Gesundheit leidet darunter. Viel Glück.
 
Zurück