PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Warenkorb funzt nicht
Beitrag
<blockquote data-quote="Christian" data-source="post: 1494267" data-attributes="member: 3735"><p><strong>AW: Warenkorb funzt nicht</strong></p><p></p><p>Also das Problem, was Du hast ist, dass die Artikeldaten zum Zeitpunkt des Aufrufs nicht verfügbar sind, da sie erst über das Artikelparser Objekt instantiiert hätten sein müssen.</p><p>Das bewerkstelligen wir wie folgt:</p><p>[php] if(!is_array($art) || (sizeof($art)<1)){</p><p> $artikelparser = new Artikelparser("artikeldaten.xml");</p><p> $art = $artikelparser->getArtikelArray();</p><p> }[/php]</p><p></p><p>Und im Gesamten sähe Deine warenkorb.php so aus:</p><p>[php]<?php</p><p></p><p>include_once ("Artikel.inc");</p><p></p><p>// Einstellen westeuropäischen Zeichensatz</p><p>header("Content-type: text/html; charset=utf-8");</p><p>// Einlesen der Klassendefinition</p><p>include ("Warenkorb.inc");</p><p>// Aufbauen der Artikelliste. Hierbei ist zu beachten, dass das Skript "artikelliste.php"</p><p>// nach Ausführung die Variable '$art', ein Array, zur Verfügung stellt.</p><p>// Wird das Skript für die ESA-Aufgabe 3 abgeändert, dass dieses nun eine Klasse 'Artikelparser'</p><p>// enthält, steht die Variable '$art' so ohne Weiteres nicht zur Verfügung. Es sind dann</p><p>// weitere Anweisungen notwendig, um '$art' verfügbar zu machen.</p><p>include ("artikelliste.php");</p><p>// starte Session, falls nicht schon passiert</p><p>session_start();</p><p>// hole Warenkorb-Objekt aus der Session, wenn vorhanden:</p><p>if (isset($_SESSION['korb'])) {</p><p> $korb = $_SESSION['korb'];</p><p>}</p><p>// Falls es der erste Aufruf ist, muß zuerst ein neuer Warenkorb angelegt werden.</p><p>// Hierfür wird mit der Klassenbeschreibung "Warenkorb" eine neue Instanz mit 'new' erstellt.</p><p>// Die Klassenbeschreibung "Warenkorb" wird im Skript 'Warenkorb.inc' erstellt.</p><p>if (! isset($korb) || ! is_object($korb)) {</p><p> $korb = new Warenkorb();</p><p>}</p><p>// Parameter-Variable initialisieren (wird in XAMPP benötigt !)</p><p>if (isset($_GET['artikel']))</p><p> $artikel = $_GET['artikel'];</p><p>if (isset($_GET['entf']))</p><p> $entf = $_GET['entf'];</p><p>if (isset($_GET['loeschen']))</p><p> $loeschen = $_GET['loeschen'];</p><p> // Artikel hinzufügen?</p><p>if (isset($artikel))</p><p> $korb->hinzufuegen($artikel);</p><p> // Artikel entfernen?</p><p>if (isset($entf))</p><p> $korb->entfernen($entf);</p><p> // Gesamten Warenkorb löschen?</p><p>if (isset($loeschen))</p><p> $korb->leeren();</p><p> // Warenkorb zurück in die Session stellen, das bedeutet die Warenkorb-Instanz</p><p>// wird in das globale Array $_SESSION in das Index-Element 'korb' gestellt.</p><p>$_SESSION['korb'] = $korb;</p><p>?></p><p><html></p><p><link rel="stylesheet" type="text/css" href="screen.css"></p><p><title>Warenkorb</title></p><p><body></p><p><h1>Warenkorb</h1></p><p><hr></p><p><br></p><p><div id="warenkorb"><a href="warenkorb.php?loeschen=1">Warenkorb</p><p>l&ouml;schen</a></p><p><?php</p><p>// Die if-Abfrage bewirkt, dass der Warenkorb-Inhalt nur dann aufgelistet wird,</p><p>// wenn auch ein Inhalt existiert:</p><p>if (! empty($korb->inhalt)) {</p><p> //Überprüfung, ob es die Artikeldaten schon gibt, wenn nicht</p><p> //muss die XML Datei aufbereitet und die Artikeldaten als </p><p> //Array geparsed und zur Verfügung gestellt werden</p><p> if(!is_array($art) || (sizeof($art)<1)){</p><p> $artikelparser = new Artikelparser("artikeldaten.xml");</p><p> $art = $artikelparser->getArtikelArray();</p><p> }</p><p> print "<p>Sie haben bisher folgende Artikel ausgew&auml;hlt:</p>";</p><p> // die Variable für die Summe initialisieren:</p><p> $summe = 0;</p><p> // zeige alle bisher ausgewählten Artikel an. Hierfür wird ein sich wiederholender Befehlsblock</p><p> // mit der Anweisung 'foreach' erstellt:</p><p> foreach ($korb->inhalt as $artikel => $anzahl) {</p><p> $gesamt = $art[$artikel]->preis * $anzahl;</p><p> $summe = $summe + $gesamt;</p><p> print "<p>Artikelnummer: " . $artikel . " <br>" . $art[$artikel]->name;</p><p> print " <a href='warenkorb.php?entf=$artikel'>";</p><p> print "Artikel entfernen</a><br />";</p><p> print "Anzahl: " . $anzahl . "<br> Einzel-Preis: " . $art[$artikel]->preis . "<br> Euro Gesamt: " . $gesamt . " Euro<br /></p>\n";</p><p> }</p><p> print "<hr><p>Summe im Warenkorb: " . $summe . " Euro</p>";</p><p>} else {</p><p> // Diese Ausgabe erfolgt nur, wenn der Warenkorb keinen Inhalt hat:</p><p> print "<p>Sie haben nichts ausgew&auml;hlt.</p>";</p><p>}</p><p>?></p><p></p><p><p></p><p></p><p></p><p><form action="bestellung.php" method="post"><input type="submit"</p><p> value="Bestellung absenden"></form></p><p></p></p><p><p><a href="artikel.php">Zur&uuml;ck zur Artikel&uuml;bersicht</a></p></p><p></div></p><p></body></p><p></html>[/php]</p><p></p><p>Eigentlich muss man ja sowas als Aufgabe selber bewerkstelligen, aber aus eigener Erfahrung weiß ich, dass das eben nicht mal eben so zu verstehen geht.</p></blockquote><p></p>
[QUOTE="Christian, post: 1494267, member: 3735"] [b]AW: Warenkorb funzt nicht[/b] Also das Problem, was Du hast ist, dass die Artikeldaten zum Zeitpunkt des Aufrufs nicht verfügbar sind, da sie erst über das Artikelparser Objekt instantiiert hätten sein müssen. Das bewerkstelligen wir wie folgt: [php] if(!is_array($art) || (sizeof($art)<1)){ $artikelparser = new Artikelparser("artikeldaten.xml"); $art = $artikelparser->getArtikelArray(); }[/php] Und im Gesamten sähe Deine warenkorb.php so aus: [php]<?php include_once ("Artikel.inc"); // Einstellen westeuropäischen Zeichensatz header("Content-type: text/html; charset=utf-8"); // Einlesen der Klassendefinition include ("Warenkorb.inc"); // Aufbauen der Artikelliste. Hierbei ist zu beachten, dass das Skript "artikelliste.php" // nach Ausführung die Variable '$art', ein Array, zur Verfügung stellt. // Wird das Skript für die ESA-Aufgabe 3 abgeändert, dass dieses nun eine Klasse 'Artikelparser' // enthält, steht die Variable '$art' so ohne Weiteres nicht zur Verfügung. Es sind dann // weitere Anweisungen notwendig, um '$art' verfügbar zu machen. include ("artikelliste.php"); // starte Session, falls nicht schon passiert session_start(); // hole Warenkorb-Objekt aus der Session, wenn vorhanden: if (isset($_SESSION['korb'])) { $korb = $_SESSION['korb']; } // Falls es der erste Aufruf ist, muß zuerst ein neuer Warenkorb angelegt werden. // Hierfür wird mit der Klassenbeschreibung "Warenkorb" eine neue Instanz mit 'new' erstellt. // Die Klassenbeschreibung "Warenkorb" wird im Skript 'Warenkorb.inc' erstellt. if (! isset($korb) || ! is_object($korb)) { $korb = new Warenkorb(); } // Parameter-Variable initialisieren (wird in XAMPP benötigt !) if (isset($_GET['artikel'])) $artikel = $_GET['artikel']; if (isset($_GET['entf'])) $entf = $_GET['entf']; if (isset($_GET['loeschen'])) $loeschen = $_GET['loeschen']; // Artikel hinzufügen? if (isset($artikel)) $korb->hinzufuegen($artikel); // Artikel entfernen? if (isset($entf)) $korb->entfernen($entf); // Gesamten Warenkorb löschen? if (isset($loeschen)) $korb->leeren(); // Warenkorb zurück in die Session stellen, das bedeutet die Warenkorb-Instanz // wird in das globale Array $_SESSION in das Index-Element 'korb' gestellt. $_SESSION['korb'] = $korb; ?> <html> <link rel="stylesheet" type="text/css" href="screen.css"> <title>Warenkorb</title> <body> <h1>Warenkorb</h1> <hr> <br> <div id="warenkorb"><a href="warenkorb.php?loeschen=1">Warenkorb löschen</a> <?php // Die if-Abfrage bewirkt, dass der Warenkorb-Inhalt nur dann aufgelistet wird, // wenn auch ein Inhalt existiert: if (! empty($korb->inhalt)) { //Überprüfung, ob es die Artikeldaten schon gibt, wenn nicht //muss die XML Datei aufbereitet und die Artikeldaten als //Array geparsed und zur Verfügung gestellt werden if(!is_array($art) || (sizeof($art)<1)){ $artikelparser = new Artikelparser("artikeldaten.xml"); $art = $artikelparser->getArtikelArray(); } print "<p>Sie haben bisher folgende Artikel ausgewählt:</p>"; // die Variable für die Summe initialisieren: $summe = 0; // zeige alle bisher ausgewählten Artikel an. Hierfür wird ein sich wiederholender Befehlsblock // mit der Anweisung 'foreach' erstellt: foreach ($korb->inhalt as $artikel => $anzahl) { $gesamt = $art[$artikel]->preis * $anzahl; $summe = $summe + $gesamt; print "<p>Artikelnummer: " . $artikel . " <br>" . $art[$artikel]->name; print " <a href='warenkorb.php?entf=$artikel'>"; print "Artikel entfernen</a><br />"; print "Anzahl: " . $anzahl . "<br> Einzel-Preis: " . $art[$artikel]->preis . "<br> Euro Gesamt: " . $gesamt . " Euro<br /></p>\n"; } print "<hr><p>Summe im Warenkorb: " . $summe . " Euro</p>"; } else { // Diese Ausgabe erfolgt nur, wenn der Warenkorb keinen Inhalt hat: print "<p>Sie haben nichts ausgewählt.</p>"; } ?> <p> <form action="bestellung.php" method="post"><input type="submit" value="Bestellung absenden"></form> </p> <p><a href="artikel.php">Zurück zur Artikelübersicht</a></p> </div> </body> </html>[/php] Eigentlich muss man ja sowas als Aufgabe selber bewerkstelligen, aber aus eigener Erfahrung weiß ich, dass das eben nicht mal eben so zu verstehen geht. [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Warenkorb funzt nicht
Oben