M
Merbi
Guten Morgen zusammen,
ich habe mir nach einem Tutorial einen kleinen Shop für ein Informatik - Projekt gebastelt.
Der Shop besteht aus der Datei cart.htm (Warenkorb):
Aus der Datei shop.htm:
Die Datei bestellung.htm:
Und letzlich noch die Datei shop.js:
Alle Seiten werden richtig angezeigt nur die "Startseite" also Artikelübersicht nicht.
Ich finde den Fehler nicht, habe mich aber an das Tutorial gehalten.
LG Daniel
ich habe mir nach einem Tutorial einen kleinen Shop für ein Informatik - Projekt gebastelt.
Der Shop besteht aus der Datei cart.htm (Warenkorb):
Code:
<h1>Warenkorb</h1>
<table>
<tr>
<td>Artikel</td> <td>Stückpreis</td> <td>Anzahl</td>
</tr>
<tr>
<script language="JavaScript">
<!--
var data=getData();
/* Daten aus dem Cookie lesen */
for(i=0;i<data.length;i++)
{
if(data[i]>0)
{
/* Wenn die Stückzahl größer als 0 ist */
document.writeln("<tr>");
document.writeln("<td>"+Artikel[i]+"</td><td>"+
Preis[i]+".-</td><td>"+data[i]);
document.writeln("</tr>");
}
}
//-->
</script>
</tr>
</table>
<form>
<input type="button" value="Warenkorb leeren" onClick="resetCookie();">
<input type="button" value="Zum Shop" onClick="location.href='shop.htm';">
<input type="button" value="Bestellung aufgeben" onClick="location.href='bestellung.htm';">
</form>
Aus der Datei shop.htm:
Code:
<script language="JavaScript" type="text/JavaScript">
writeShop();
</script>
Die Datei bestellung.htm:
Code:
<script language="JavaScript">
<!--
function writeOrder()
{
var data=getData();
/* Stückzahlen aus dem Cookie auslesen */
var rechnung=document.forms['Bestellung'].elements['Rechnung'];
/* Die Textarea in der die Aufstellung geschrieben wird */
rechnung.value+="\t\t\t Ihre Bestellung\n\n";
/* Die \t sind Tabulatoren, die \n Zeilenumbrüche */
rechnung.value+="\tBezeichnung\tStückpreis\tAnzahl\tGesamtpreis\n";
/* Die erste Zeile */
for(i=0;i<data.length;i++)
{
if(data[i]>0)
{
/* Stückzahl > 0 */
/* neue Zeile mit BEZEICHNUNG EINZELPREIS STÜCKZAHL KOSTEN */
rechnung.value+="\t"+Artikel[i]+"\t"+Preis[i]+".-\t\t"+data[i]+"\t"+data[i]*Preis[i]+".-\n";
}
}
var summe=0;
/* Gesamtsumme */
for(i=0;i<data.length;i++)
{
summe+=data[i]*Preis[i];
/* Stückzahl * Preis aufaddieren */
}
rechnung.value+="\n\tSumme:\t\t\t\t\t"+summe+".-";
/* Gesmatsumme in die Textarea schreiben */
}
//-->
</script>
</head>
<body onLoad="writeOrder();">
<h1>Bestellung</h1>
<form action="mailto:deine@email.com" method="post" name="Bestellung">
<!-- Das Formular soll per eMail verschickt werden -->
<textarea name="Rechnung" cols="100" rows="10" readonly="readonly>" </textarea><br>
<!-- Angaben zum Käufer -->
Name <input type="Text" name="Name" value="" size="25" maxlength="100"> <br>
Straße / Nummer <input type="Text" name="Strasse_Nr" value="" size="25" maxlength="100"> <br>
PLZ / Ort <input type="Text" name="Adresse" value="" size="25" maxlength="100"> <br>
Land <input type="Text" name="Land" value="Deutschland" size="25" maxlength="100"> <br>
<input type="Button" value="Zurück" onClick="location.href='shop.html';">
<input type="Submit" value="Bestellung aufgeben">
</form>
Und letzlich noch die Datei shop.js:
Code:
var Artikel=new Array("Artikel1","Artikel2","Artikel3");
var Preis=new Array(5,7,9);
function writeShop()
{
var data=getData();
/* Daten aus Cookie auslesen */
document.writeln("<form name=\"Shop>\"");
document.writeln("<table>")
for(i=0;i<Artikel.length;i++)
{
document.writeln("<tr>");
/* Zeilenbeginn */
document.writeln("<td>"+Artikel[i]+"</td> <td>"+
Preis[i]+"</td> <td><input type=\"text\" size=\"5\" value=\""+
data[i]+"\"></td>");
document.writeln("</tr>");
/* Zeilenende */
}
/* Neue Zeile mit 2 Buttons */
document.writeln("<tr>"+
"<td colspan=\"3\" align=\"center\">"+
"<input type=\"button\" value=\"Bestellen\" onClick=\"setCookie();\">"+
"<input type=\"button\" value=\"Warenkorb einsehen\" onClick=\"showCart();\">"+
"</td>"+
"</tr>");
document.writeln("</table>");
document.writeln("</form>")
}
function showCart()
{
setCookie();
location.href="cart.htm";
}
function setCookie()
{
var wert="";
for(i=0;i<Artikel.length;i++)
{
/* Stückzahlen einsammeln */
wert += document.forms["Shop"].elements[i].value+"|";
}
document.cookie = "einkauf="+wert+";";
location.href="bestellung.htm";
}
function getData()
{
var content=new Array();
if(document.cookie)
{
var wert=document.cookie.substring(8,document.cookie.length);
/* Zeichen von 0 bis 8 ist "einkauf=" */
for(i=0;wert.indexOf("|")>-1;i++)
{
var d=wert.substring(0,wert.indexOf("|"));
/* Daten bis zum Trennstrich auslesen */
(besser:)
content[content.length] = d;
/* Daten als neues Element im Array einfügen */
wert=wert.substr(wert.indexOf("|")+1,wert.length);
/* bereits gelesene Daten wegschneiden und wieder von vorne beginnen */
}
return content;
/* gib das gefüllte Array zurück */
}
/* Sonderfall: Es gibt noch kein Cookie */
for(i=0;i<Artikel.length;i++)
{
content[i] = '0';
}
return content;
}
function resetCookie()
{
var bestellung="";
for(i=0;i<Artikel.length;i++)
{
bestellung+="0|"
/* Stückzahl 0 setzen */
}
document.cookie="einkauf="+bestellung+";";
location.reload();
}
Alle Seiten werden richtig angezeigt nur die "Startseite" also Artikelübersicht nicht.
Ich finde den Fehler nicht, habe mich aber an das Tutorial gehalten.
LG Daniel