Werte in ein Feld eintragen, wer kann helfen ?

elreydebesos

Mitglied
Hallo ich bin Newbie und habe bei meiner Homepagerstellung folgendes Problem:

Ich biete auf meiner Homepage 5 verschiedene Artikel zu Verkauf an, die alle einen unterschiedlichen Preis haben.
Der Käufer wählt sie von meiner Homepage aus und die Daten der Felder werden per "POST" an ein Betreiber von Online-Zahlungssystemen geschickt, wo der Kunde noch seine Kontonummer eingibt.
Anschließend erhalte ich eine Email mit den Kundendaten als Bestätigung zurück.
Soweit, sogut :-)

Normalerweise wird die Artikelverwaltung ja über eine Datenbank realisiert mit der die Felder auf der Website verknüpft sind. Da ich aber nur 5 Artikel habe die alle unterschiedliche Preise haben, hatte ich folgende Idee:

Ich habe eine Gruppe von 5 Optionsfeldern (für die Auswahl der verschiedenen Artikel) angelegt und entsprechend mit der Artikelbezeichnung und dem Preis beschriftet.
Der Kunde wählt aus der Gruppe einen Artikel aus.

Die Felder heißen alle AMOUNT und die Feldwerte entsprechen den jeweiligen Artikelpreisen.

Ich möchte nun ein Javascript einsetzen, das den jeweils ausgewählten Wert des AMOUNT-Feldes ausliest und ihn zur Bedingung für den Eintrag in ein Feld namens INFO_FIELD macht, wo dann die Artikelbezeichnung drinstehen soll.

Also grob beschrieben soll das Script etwa foldendes tun:

"Wenn der Wert des Feldes AMOUNT gleich 129.90 ist, dann schreibe in das Feld INFO_FIELD "17 Zoll Monitor"."

oder

"Wenn der Wert des Feldes AMOUNT gleich 329.90 ist, dann schreibe in das Feld INFO_FIELD "15 Zoll TFT-Bildschirm"."


Wie gesagt, auf der Website ist es nur ein Feld (AMOUNT), das der Kunde auswählen kann und das mit der Artikelbezeichnung beschrieben ist.
Die Datenübergabe an den Zahlungsdienstleister muß aber in 2 Feldern (AMOUNT und INFO_FIELD) erfolgen, weswegen ich ein Script brauche, das mir das INFO_FIELD je nach Wert des Feldes AMOUNT mit einem vordefinierten Text ausfüllt.

Also, ich hoffe ich habe alles verständlich beschrieben und mir kann jemand von euch Spezis helfen.

Vielen Dank im Voraus,

Sascha
 
Hallo!

Also, so wie ich das sehe, hast du folgende Situation:

HTML-Code (in etwa):
Code:
<html>
<body>
<form name="artikel" action="http://www.bezahldienst.de/auswerten.php?Kunde=ich" method="POST">
<input type="hidden" name="INFO_FIELD" />
Wähle einen Artikel:
<select name="AMOUNT">
<option value="129">17 Zoll Monitor - EUR 129,00</option>
<option value="199">17 Zoll Monitor #2 - EUR 129,00</option>
<option value="399">19 Zoll Monitor - EUR 199,00</option>
<option value="499">19 Zoll Monitor #2 - EUR 499,00</option>
<option value="599">19 Zoll Monitor #3 - EUR 599,00</option>
</select>
<input type="button" value="Zur Kasse" onclick="change()">
</form>
</body>
</html>

Wenn das der Fall ist, dann sieht die Lösung für dein Problem beispielsweise so aus:

Code:
<html>
<script type="text/javascript">
<!--
function change()
{
document.artikel.INFO_FIELD.value = document.artikel.AMOUNT.options[document.artikel.AMOUNT.selectedIndex].text;
alert (document.artikel.INFO_FIELD.value);
document.artikel.submit();
}
//-->
</script>
<body>
<form name="artikel" action="http://www.bezahldienst.de/auswerten.php?Kunde=ich" method="POST">
<input type="hidden" name="INFO_FIELD" />
Wähle einen Artikel:
<select name="AMOUNT">
<option value="129">17 Zoll Monitor - EUR 129,00</option>
<option value="199">17 Zoll Monitor #2 - EUR 129,00</option>
<option value="399">19 Zoll Monitor - EUR 199,00</option>
<option value="499">19 Zoll Monitor #2 - EUR 499,00</option>
<option value="599">19 Zoll Monitor #3 - EUR 599,00</option>
</select>
<input type="button" value="Zur Kasse" onclick="change()">
</form>
</body>
</html>

Hier wird immer, wenn auf "Zur Kasse" geklickt wird, die JavaScript-Funktion change() aufgerufen.
Diese setzt dann den Text (also das, was zwischen den option-Tags steht) des jeweils ausgewählten Artikels in das versteckte Feld "INFO_FIELD".
Zur Kontrolle wird dann noch mittels alert der Wert von INFO_FIELD ausgegeben und das Formular abgesendet.

Ist das Problem richtig gelöst?
 
Danke :-)

...das sieht sehr interessat aus.
Allerding habe iich keinen Button "zur Kasse" oder so.
Der vorhandene ist ja schon mit "POST" belegt und es soll auch kein 2. hinzukommen.

Gibt es nicht eine Möglichkeit es z.b. mit document.write zu machen ?

Also einfach eine Art if-Abfrage des Feldes AMOUNT und wenn eine bestimmte Bedingung erfüllt ist (also z.B. der Preis = 129.00) dann soll automatisch ein vordefinierter Wert in das INFO_FIELD geschrieben werden.

Gruß, Sascha
 
Das mit der If-Abfrage ist durchaus möglich.
Ich halte es nur für unnötig, extra soviel Code zu basteln.
Und wenn du doch noch mehr Artikel einführen willst (oder diese ändern möchtest), musst du auch extra die if-Abfrage ändern.

Zu dem Button:
Was meinst du eigentlich mit "der vorhandene ist auch scho mit "POST" belegt?
Wie sendest du denn dein Formular ab?

Man könnte das automatische Füllen des Hidden-Felds natürlich auch bei einem anderen Ereignis auftreten lassen.
Hier mal ein Beispiel, wenn man einen Artikel auswählt:

Code:
<html>
<script type="text/javascript">
<!--
function change()
{
document.artikel.INFO_FIELD.value = document.artikel.AMOUNT.options[document.artikel.AMOUNT.selectedIndex].text;
alert (document.artikel.INFO_FIELD.value);
document.artikel.submit();
}
//-->
</script>
<body>
<form name="artikel" action="http://www.bezahldienst.de/auswerten.php?Kunde=ich" method="POST">
<input type="hidden" name="INFO_FIELD" />
Wähle einen Artikel:
<select name="AMOUNT" onchange="change()">
<option>Artikel</option>
<option value="129">17 Zoll Monitor - EUR 129,00</option>
<option value="199">17 Zoll Monitor #2 - EUR 129,00</option>
<option value="399">19 Zoll Monitor - EUR 199,00</option>
<option value="499">19 Zoll Monitor #2 - EUR 499,00</option>
<option value="599">19 Zoll Monitor #3 - EUR 599,00</option>
</select>
</form>
</body>
</html>
 
sowas meinte ich...

danke, ich glaub genau so sollte es funktionieren. Probiere es morgen gleich mal aus !

Das Formular sende ich übrigens ab, weil (bzw. die Feldwerte) von einem Dienstanbieter für Internet-Zahlungen weiterverarbeitet wird.

Danke vielmals !

Sascha
 

Neue Beiträge

Zurück