PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auktualisierung einer Variable nach Auswahl!


Satherlor
15.10.2003, 19:45:42
Moin,
ich habe folgenden Quelltext:

<html>
<body>
<form action="warenkorb/bestellungen/artikel_speichern.php" onSubmit="return form_check1()" name="form1">
<table width="180" cellspacing="2" cellpadding="5">
<tr>
<td>
<select name="Artikelwahl" size="1">
<option value="---Bitte wählen---">---Bitte wählen---</option>
<option value="einfache Qualität">einfache Qualität</option>
<option value="mittlere Qualität">mittlere Qualität</option>
<option value="V-T- mittlere Qualität">V-T- mittlere Qualität</option>
<option value="super Qualität">super Qualität</option>
<option value="Übergrößen/ 3XL - 7XL">Übergrößen/ 3XL - 7XL</option>
</td>
<td>
</td>
<td>
</td>
<td>
<label>Menge:</label>
</td>
<td>
<input type="text" name="Menge" size="10" border="0" value="0">
</td>
<td>
</td>
<td>
</td>
<td>
<input type="image" src="warenkorb_hinein.jpg">
<input type="hidden" name="Einzelpreis" value="0">
<input type="hidden" name="Artikelbezeichnung" value="T-Shirt">
</td>
</tr>
</table>
</form>
</body>
</html>


Mein Problem ist, dass ich gere das Einzelpreis.value (<input type="hidden" name="Einzelpreis" value="0">) bei übertragen (onSubmit) aktualisiere. Also ich möchte gerne, dass das den mittels einer IF-Schleife ermittelten Wert für das jeweilige Produkt an nimmt. Das sieht ungefähr so aus, dass jemand in dem Auswahlmenü ein Produkt aussucht beispielsweise "einfache Qualität". Weil die alle aber unterschiedliche Preise haben, benötige ich irgendwie etwas, womit ich den Preis in form einer Variabel zum artikel_speichern.php übergeben kann.
Kurz: Ich muss irgendwie den Preis für das jeweilige Produkt mit übergeben!

Kann mir jemand helfen dies zu bewerkstelligen? Meine Idee war es den hidden "Einzelpreis" input type="hidden" name="Einzelpreis" value="0">) zu verwenden. Dann würde ich über den onSubmit Befehl die (noch nicht geschriebene) form_check1() aufrufen und mittels einer If-Schleife abfragen, if document.form1.Artikelwahl.value == "bla" dann ... aber mit dem hab ich noch probleme! Könnte mir das jemand ma richtig hinschreiben? THX

lindic
18.10.2003, 13:04:42
moin!

das müsste so gehen:

function form_check1() {
for(i=0;i<document.form1.Artikelwahl.length;++i) {
if (document.form1.Artikelwahl.selectedIndex == "bla") {
document.form1.Einzelpreis.value = document.form1.Artikelwahl.options[i].value;
}
}
}

ist aber ungetestet!

gruß,
lindic

Satherlor
18.10.2003, 14:46:48
ne, geht nicht wilkich gut, aber danke für den Versuch! Ich werd versuchen das solbst nochmal zusammen zu schustern!

lindic
18.10.2003, 15:00:37
uups, denkfehler meinerseits....

versuch doch diese variante mal:

function form_check1() {
for(i=0;i<document.form1.Artikelwahl.length;++i) {
if (document.form1.Artikelwahl.options[i].selected == true) {
document.form1.Einzelpreis.value = document.form1.Artikelwahl.options[i].value;
}
}
}

d.h. sobald eine auswahl 'selected' ist, bekommt der einzelpreis seinen wert zugewiesen.

Satherlor
18.10.2003, 15:40:41
joa, besten Dank, ich hab das noch nen bisschen bearbeitet, aber es funktioniert super. Ich hab nur noch nen Problem! Wenn der User nichts ausgewählt hat, also Formular auf "---Bitte wählen---" steht und der User abschickt, dass dann ein Alert ("Bitte erst wählen") erscheint. Das ist alles kein Problem! Aber dann geht das Formular ja immernoch automatisch auf die artikel_speichern.php! Wie kann ich das unterdrücken, dass wenn der User immernoch "---Bitte wählen---" ausgewählt hat, dass das Formular dann nachdem der Alert erschienen ist zur artikel_speichern.php geht. Denn danach soll der User die möglichkeit haben, seine Eingabe zu korrigieren.

lindic
18.10.2003, 15:57:51
einfach nach dem alert() ein return false; setzen.


if (document.form1.Artikelwahl.options[0].selected == true) {
alert('Falsch!');
return false;
}

Satherlor
18.10.2003, 15:59:11
besten dank