Warenkorbinhalt weiterleiten
willie
- javascript
0 Thomas Mang0 willie0 Thomas Mang0 willie0 Ingo Turski0 willie0 Thomas Mang0 willie
Hallo, vielleicht kann mir jemand helfen?!
Ich will per e-mail über eine erfolgte Bestellung informiert werden. Leider erhalte ich nur die Artikelnummer, die Anzahl der bestellten Artikel und den Gesamtpreis gepostet:
<INPUT TYPE=text SIZE=5 NAME="'+ArtName+'" VALUE="'+zelle+'" onchange="aendere('+zeile+', korb.elements[('+zeile+'-1)*2+0].value)">
und
document.write('<INPUT TYPE="Hidden" NAME="_Gesamtpreis" value=" '+csstr(gesamt+wert("0,00"),1)+' bzw. '+csstr(gesamt+wert("0,00"),2)+'">');
Im Warenkorb selbst werden aber ausserdem noch Artikelname und Einzelpreis ausgegeben. Da der Benutzer hier noch die Artikelmenge ändern oder Artikel ganz löschen kann, gibt es nachfolgendes Script Auszug). Nun meine Frage: wie kann ich die verschiedenen Werte in der Variablen "Zelle" reihenweise auslesen und versenden. Vielleicht als Hidden Field. Als Java-Script-Newbie freue ich mich über alle Tipps!
document.write('</TR>');
if (validcookie.length != '')
{
document.write('<TR>');
var zeile = 1;
var counter = 0;
var c_string = 0;
var zelle = '';
var zwischen = '';
var ArtName ='';
while (c_string <= daten.length)
{
counter ++;
zelle = '';
while ((daten.charAt(c_string) != ':') && (c_string <= daten.length))
{
zelle = zelle + daten.charAt(c_string); c_string ++;
}
c_string ++;
if (counter == 1) document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2">'+zelle+'</font></td>');
if (counter == 2) document.write
if (counter == 3) {ArtName = zelle;document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2">'+zelle+'</font></TD>');}
if (counter == 4) {document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2">'+wformat(zelle)+'</font></TD>');preis = zelle;}
if (counter == 5)
{
document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2"><INPUT TYPE=text SIZE=5 NAME="'+ArtName+'" VALUE="'+zelle+'" onchange="aendere('+zeile+', korb.elements[('+zeile+'-1)*2+0].value)"></font></TD>');
gesamt = (1 * gesamt.valueOf()) + (preis.valueOf()*zelle.valueOf());
}
if ((counter == 5)&&(c_string <= daten.length))
{
zwischen = '<TD><FONT FACE="Arial" COLOR="#000000" SIZE="2"><INPUT TYPE=button VALUE="Löschen" onClick="loesche('+zeile+')"></TD>';
document.write(zwischen);
document.write('<TR></TR>');
counter = 0;
zeile ++;
}
}
if (daten.length > 4)
{
zwischen = '<TD><FONT FACE="Arial" COLOR="#000000" SIZE="2"><INPUT TYPE=button VALUE="Löschen" onClick="loesche('+zeile+')"></TD>';
document.write(zwischen);
if (daten.length > 4)
{
zwischen = '<TD><FONT FACE="Arial" COLOR="#000000" SIZE="2"><INPUT TYPE=button VALUE="Aktualisieren" onClick="reset"></TD>';
document.write(zwischen);
}
document.write('</TR>');
}
document.write('</TR>');
}
document.write('</TD>');
document.write('</TR>');
document.write('</TABLE>');
document.write('</TABLE>');
document.write('<h3>Gesamtpreis : '+csstr(gesamt+wert("0,00"),1)+' bzw. '+csstr(gesamt+wert("0,00"),2)+'</h3>');
if (gesamt >=0) if (gesamt <1) var rabatt = (gesamt);
if (gesamt >=0) if (gesamt <1) document.write ('<h5>Bitte legen Sie erst ein Produkt in den Warenkorb<BR><BR>');
if (gesamt >2) if (gesamt < 50) var rabatt = (gesamt-(5.90));
if (gesamt >2) if (gesamt < 50) document.write ('<h5>Bestellwert ist unter Euro 50 netto: Es fallen Euro 5,90 netto (6,84 inkl. MwSt.) Frachtkosten an<BR><BR>');
if (gesamt >2) if (gesamt < 50) document.write('<h3>Gesamtpreis : '+csstr(gesamt+(gesamt-rabatt),1)+' oder '+csstr(gesamt+(gesamt-rabatt),2)+'</h3><BR>');
if (gesamt > 49) var rabatt = (gesamt);
if (gesamt > 49) document.write('<TD><FONT FACE="Arial" COLOR="#000000" SIZE="1">Es entstehen innerhalb Deutschlands keine weiteren Kosten für Sie.<BR><BR>');
document.write('<INPUT TYPE="Hidden" NAME="_Gesamtpreis" value=" '+csstr(gesamt+wert("0,00"),1)+' bzw. '+csstr(gesamt+wert("0,00"),2)+'">');
Vielen Dank im voraus!
sorry, aber ich glaube sich hier komplett reinzulesen sprengt bei den meisten leuten hier den rahmen ...
was geht denn genau nicht? kannst du es vielleicht auf die betreffenden zeilen kürzen, die nicht tun was sie sollen oder das sonstwie n bisschen vereinfachen?
ich glaub sonst wirst du nicht viel antworten kriegen. nicht bös gemeint ;)
sorry, aber ich glaube sich hier komplett reinzulesen sprengt bei den meisten leuten hier den rahmen ...
was geht denn genau nicht? kannst du es vielleicht auf die betreffenden zeilen kürzen, die nicht tun was sie sollen oder das sonstwie n bisschen vereinfachen?
ich glaub sonst wirst du nicht viel antworten kriegen. nicht bös gemeint ;)
Danke für den Tipp!
Also probiere ich es in Kurzform:
Ich möchte die Daten (5 Zellen pro Zeile), die in folgendem Scriptteil ausgelesen und vom Kunden geändert werden können per email versenden. Vielleicht gibt es die Möglichkeit mit Hidden Fields zu arbeiten?
if (counter == 1) document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2">'+zelle+'</font></td>');
if (counter == 2) document.write
if (counter == 3) {ArtName = zelle;document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2">'+zelle+'</font></TD>');}
if (counter == 4) {document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2">'+wformat(zelle)+'</font></TD>');preis = zelle;}
if (counter == 5)
{
document.write('<td bgcolor="#DCDCDC"><font face="Arial,Helvetica,Sans-serif" size=2><b><FONT FACE="Arial" COLOR="#000000" SIZE="2"><INPUT TYPE=text SIZE=5 NAME="'+ArtName+'" VALUE="'+zelle+'" onchange="aendere('+zeile+', korb.elements[('+zeile+'-1)*2+0].value)"></font></TD>');
gesamt = (1 * gesamt.valueOf()) + (preis.valueOf()*zelle.valueOf());
}
if ((counter == 5)&&(c_string <= daten.length))
{
zwischen = '<TD><FONT FACE="Arial" COLOR="#000000" SIZE="2"><INPUT TYPE=button VALUE="Löschen" onClick="loesche('+zeile+')"></TD>';
document.write(zwischen);
document.write('<TR></TR>');
counter = 0;
zeile ++;
}
Ich möchte die Daten (5 Zellen pro Zeile), die in folgendem Scriptteil ausgelesen und vom Kunden geändert werden können per email versenden. Vielleicht gibt es die Möglichkeit mit Hidden Fields zu arbeiten?
Immernoch ein wenig verworren ;)
Möglichkeiten gibts immer O:) Kann ich mir diese Seite irgendwo anschauen? Wo hat denn der Kunde die Möglichkeit diese Zellen zu ändern?
Alles was an Daten da ist, kann auch überall hingeschickt werden ;) Steht dir ggf auch PHP zur Verfügung? Das kann oft vieles einfacher machen ... Aber am wichtigsten wäre mal ne URL, wo ich mir das "Live" anschauen und ein wenig testen kann ;)
Dann schaun wir mal weiter
Grüsse
Thomas
Ich möchte die Daten (5 Zellen pro Zeile), die in folgendem Scriptteil ausgelesen und vom Kunden geändert werden können per email versenden. Vielleicht gibt es die Möglichkeit mit Hidden Fields zu arbeiten?
Immernoch ein wenig verworren ;)
Möglichkeiten gibts immer O:) Kann ich mir diese Seite irgendwo anschauen? Wo hat denn der Kunde die Möglichkeit diese Zellen zu ändern?
Alles was an Daten da ist, kann auch überall hingeschickt werden ;) Steht dir ggf auch PHP zur Verfügung? Das kann oft vieles einfacher machen ... Aber am wichtigsten wäre mal ne URL, wo ich mir das "Live" anschauen und ein wenig testen kann ;)
Dann schaun wir mal weiter
Grüsse
Thomas
Vielen Dank für Deine Hilfe!
Ich habe das Ganze eben zum Testen online gestellt (nicht schön - aber selten ;-):
1. Warenkorb: http://www.kerstin-scheffe.powerwerben.de/basket.htm
2. Musterprodukt 1: http://www.kerstin-scheffe.powerwerben.de/p1000.htm
3. Musterprodukt 2: http://www.kerstin-scheffe.powerwerben.de/p2000.htm
Grundsätzlich steht mit auch php zur Verfügung - da aber alles funktioniert bis auf das Weiterleiten von Artikelname und Einzelpreis würde ich gerne auf der momentanen Lösung aufbauen.
Viele Grüße
Thomas
Hi,
Grundsätzlich steht mit auch php zur Verfügung - da aber alles funktioniert bis auf das Weiterleiten von Artikelname und Einzelpreis würde ich gerne auf der momentanen Lösung aufbauen.
Du willst also stets nachrechnen, ob _Gesamtpreis tatsächlich stimmt? Ich kann mir vorstellen, daß da so mancher Besucher, wenn er im Quelltext auf dieses hidden-field stößt, zu tricksen versucht - könnte ja übersehen werden. ;-)
freundliche Grüße
Ingo
Hi,
Grundsätzlich steht mit auch php zur Verfügung - da aber alles funktioniert bis auf das Weiterleiten von Artikelname und Einzelpreis würde ich gerne auf der momentanen Lösung aufbauen.
Du willst also stets nachrechnen, ob _Gesamtpreis tatsächlich stimmt? Ich kann mir vorstellen, daß da so mancher Besucher, wenn er im Quelltext auf dieses hidden-field stößt, zu tricksen versucht - könnte ja übersehen werden. ;-)freundliche Grüße
Ingo
Hallo Ingo,
da hast Du schon recht - aber die Lösung meines Problems sollte mit dem Script realisiert werden. Ich selbst bevorzuge auch PHP. Aber diesesmal muss es Java-Script sein :-;
Viele Grüße
willie
wenn ich das richtig sehe, werden die daten die du benötigst in nem cookie gespeichert, getrennt durch doppelpunkte ...
dann hast du irgendwo da drin den "jetzt bestellen" button, der einfach die form submitted also abschickt.
ich würds jetzt wirklich so machen, das der button selbst kein submit button ist, sondern ein button ohne direkte formular aufgabe, und das dieser mit onClick eine Javaskript Funktion startet, die wirklich hidden felder als Objekte öffnet, die Cookie werte reinliest und dann das forumular abschickt.
soviel zur grundlegenden theorie wie ich vorgehen würde, aber die praktische umsetzung ist nicht geschenkt ;) Kenntnisse von Cookies und Objekt - orientiertem proggen in Javaskript hast du hoffentlich genug ;)
wenn du dann durch eine funktion neue hidden field objekte anlegst, und aus dem cookie dann ausliest, muss man schon am cookie an sich manipulieren, was die sache wiederum ein wenig sicherer macht...
Ich hoffe das ist so n kleiner Denkansatz wie du dir ihn vorgestellt hast. Konkreter Code ist hier natürlich für mich n bissl zu aufwendig, weils nicht 100% trivial ist ;)
Grüsse
Thomas
wenn ich das richtig sehe, werden die daten die du benötigst in nem cookie gespeichert, getrennt durch doppelpunkte ...
dann hast du irgendwo da drin den "jetzt bestellen" button, der einfach die form submitted also abschickt.
ich würds jetzt wirklich so machen, das der button selbst kein submit button ist, sondern ein button ohne direkte formular aufgabe, und das dieser mit onClick eine Javaskript Funktion startet, die wirklich hidden felder als Objekte öffnet, die Cookie werte reinliest und dann das forumular abschickt.
soviel zur grundlegenden theorie wie ich vorgehen würde, aber die praktische umsetzung ist nicht geschenkt ;) Kenntnisse von Cookies und Objekt - orientiertem proggen in Javaskript hast du hoffentlich genug ;)
wenn du dann durch eine funktion neue hidden field objekte anlegst, und aus dem cookie dann ausliest, muss man schon am cookie an sich manipulieren, was die sache wiederum ein wenig sicherer macht...
Ich hoffe das ist so n kleiner Denkansatz wie du dir ihn vorgestellt hast. Konkreter Code ist hier natürlich für mich n bissl zu aufwendig, weils nicht 100% trivial ist ;)
Grüsse
Thomas
Hallo Thomas,
vielen Dank für den Denkansatz. So könnte es tatsächlich funktionieren :-). Ich werde mich daran versuchen!
Viele Grüße
willie