Buschtrommel
Grünschnabel
Schönen guten Abend.
Ich google nun schon seit vielen Stunden und komme nicht weiter, ich hoffe, dass hier vielleicht jemand ein Tipp hat.
Habe ein Warenkorbsystem (ohne Shop) gefunden welches all meine Wünsche erfüllt, nun ja fast.
Habe den Code schon so umgebaut, wie ich ihn gerne hätte (poste hier jedoch die Originalversion) - meine Frage ist nun,
wie verschicke ich die Ergebnisse der Bestellung per Email (den dynamischen Teil der "Kasse")?!
Der User sollte anbei noch seine Kontaktdaten mitsenden.
Wäre super, wenn mir jmd helfen könnte.
Vielen Dank schonmal.
Ich google nun schon seit vielen Stunden und komme nicht weiter, ich hoffe, dass hier vielleicht jemand ein Tipp hat.
Habe ein Warenkorbsystem (ohne Shop) gefunden welches all meine Wünsche erfüllt, nun ja fast.
Habe den Code schon so umgebaut, wie ich ihn gerne hätte (poste hier jedoch die Originalversion) - meine Frage ist nun,
wie verschicke ich die Ergebnisse der Bestellung per Email (den dynamischen Teil der "Kasse")?!
Der User sollte anbei noch seine Kontaktdaten mitsenden.
Wäre super, wenn mir jmd helfen könnte.
PHP:
<?php
/**
* Warenkorb-Beispiel
*
* Dies ist ein Veranschauungsbeispiel für einen Warenkorb,
* der über eine Session vorgehalten wird. Es besteht die Möglichkeit,
* Artikel hinzuzufügen, zu entfernen und den gesamten Warenkorb zu löschen.
* Folgende Werte werden in der Übersicht angezeigt:
* Art.-Nr, Art.-Text, Anzahl, Einzelpreis, Gesamtpreis Artikel, Gesamtpreis Bestellung
*
* @author Beepa (released auf www.bituniverse.com)
* @license Zur freien Verfügung, solange dieser Header bestehen bleibt.
*/
// Session starten
session_start();
// Prüfen ob Warenkorb oder einzelne Artikel gelöscht werden soll
if($_GET['modus'] == 'del_basket')
{
// Warenkorb neu als Array deklarieren und damit löschen / resetten
$_SESSION['warenkorb'] = array();
}
elseif($_GET['modus'] == 'del_art')
{
// einzelnen Artikel löschen
unset($_SESSION['warenkorb'][$_GET['art_nr']]);
}
// Array mit den Artikeln (aus DB / Datei / hardcodiert?!)
// Der Array-Index des Artikel-Arrays ist die Art.-Nr.
// Der zum Index gehörige Value ist ein mehrdimensionales Array mit
// den Indizes
// - art_txt für die Artikel-Beschreibung
// - art_preis für den Artikel-Preis
$artikel_array = array();
$artikel_array['A001'] = array('art_txt' => 'Artikel 1', 'art_preis' => 1.00);
$artikel_array['A002'] = array('art_txt' => 'Artikel 2', 'art_preis' => 2.50);
$artikel_array['A003'] = array('art_txt' => 'Artikel 3', 'art_preis' => 3.00);
$artikel_array['A004'] = array('art_txt' => 'Artikel 4', 'art_preis' => 4.50);
$artikel_array['A005'] = array('art_txt' => 'Artikel 5', 'art_preis' => 5.00);
$artikel_array['A006'] = array('art_txt' => 'Artikel 6', 'art_preis' => 6.95);
$artikel_array['A007'] = array('art_txt' => 'Artikel 7', 'art_preis' => 7.99);
$artikel_array['A008'] = array('art_txt' => 'Artikel 8', 'art_preis' => 8.00);
$artikel_array['A009'] = array('art_txt' => 'Artikel 9', 'art_preis' => 9.49);
$artikel_array['A010'] = array('art_txt' => 'Artikel 10', 'art_preis' => 10.00);
// Gibt es schon einen Warenkorb in der Session
if(!isset($_SESSION['warenkorb']))
{
// Gibt es nicht - also anlegen
$_SESSION['warenkorb'] = array();
}
// Artikel hinzufügen
if(!empty($_POST['anzahl']) && $_POST['anzahl'] > 0)
{
// Prüfen ob erhöhen oder abziehen
if($_POST['buchung'] == '+')
{
// Anzahl für den Artikel erhöhen
$_SESSION['warenkorb'][$_POST['artikel']] += $_POST['anzahl'];
}
else
{
// Anzahl für den Artikel verringern
if($_SESSION['warenkorb'][$_POST['artikel']] > $_POST['anzahl'])
{
// Es ist mehr von diesem Artikel im Warenkorb als abgezogen werden soll;
// Gewünschte Anzahl abziehen
$_SESSION['warenkorb'][$_POST['artikel']] -= $_POST['anzahl'];
}
else
{
// Es soll mehr von diesem Artikel aus dem WK entfernt werden als vorhanden;
// Artikel aus dem WK entfernen
unset($_SESSION['warenkorb'][$_POST['artikel']]);
}
} // ENDE: else
} // ENDE: if(!empty($_POST['anzahl']) && $_POST['anzahl'] > 0)
// Funktion für die Formatierung der Euro-Angaben
function nrFormat($tmp)
{
return number_format($tmp, 2, ',', '.');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Warenkorb-Beispiel</title>
<style type="text/css">
body { font-family: Geneva, Arial, Helvetica, sans-serif; }
table { background-color: #000066; padding: 5px; }
table th { font-size: 12pt; background-color: #FF6600; padding: 5px; }
table td { font-size: 10pt; background-color: #DFDFDF; padding: 5px; }
.button { font-family: Arial, Tahoma, Verdana; font-size: 8pt; font-weight: bold; background-color: #FFFFFF; }
</style>
</head>
<body>
<!-- ########################################### -->
<!-- # Start: Layout-Tabelle # -->
<!-- ########################################### -->
<table>
<tr>
<th colspan="2">Warenkorb-Beispiel:</th>
</tr>
<tr>
<td valign="top">
<!-- ########################################### -->
<!-- # Start: Tabelle mit den Artikeln # -->
<!-- ########################################### -->
<form action="warenkorb.php" method="post">
<table width="400">
<tr>
<th>Ware:</th>
<th>Anzahl:</th>
<th>+ / -</th>
</tr>
<tr>
<td>
<select size="1" name="artikel">
<?php
// Das Artikel-Array per foreach() abarbeiten
// $art_nr stellt die Artikel-Nr. dar und art_data
// ist das mehrdimensionale Array mit den Indizes 'art_text'
// und 'art_preis'
foreach($artikel_array as $art_nr => $art_data)
{
echo '<option value="' . $art_nr . '">' . $art_data['art_txt'] . ' für ' . nrFormat($art_data['art_preis']) . ' €/St.</option>';
}
?>
</select>
</td>
<td align="center">
<input type="text" name="anzahl" size="5" maxlength="3">
</td>
<td align="center">
<select size="1" name="buchung">
<option value="+">+</option>
<option value="-">-</option>
</select>
</td>
</tr>
<tr>
<th colspan="3" align="left">
<input type="submit" value="hinzufügen / entfernen" class="button">
</th>
</tr>
</table>
</form>
<!-- ########################################### -->
<!-- # Ende: Tabelle mit den Artikeln # -->
<!-- ########################################### -->
</td>
<td valign="top">
<!-- ########################################### -->
<!-- # Start: Tabelle mit dem Warenkorb # -->
<!-- ########################################### -->
<table width="600">
<colgroup>
<col width="50">
<col width="330">
<col width="50">
<col width="50">
<col width="100">
<col width="20">
</colgroup>
<tr>
<th colspan="6">Ihr Warenkorb</th>
</tr>
<tr>
<th>Art.-Nr.:</th>
<th>Beschreibung:</th>
<th>Anzahl:</th>
<th>St.:</th>
<th>Gesamt:</th>
<th> </th>
</tr>
<?php
if(count($_SESSION['warenkorb']) > 0)
{
// Aufsteigend nach Art.-Nr. sortieren
ksort($_SESSION['warenkorb']);
// Zähler für die Gesamtsumme
$summe = 0;
foreach($_SESSION['warenkorb'] as $artikel => $anzahl)
{
echo '<tr>';
echo ' <td align="center">' . $artikel . '</td>';
echo ' <td>' . $artikel_array[$artikel]['art_txt'] . '</td>';
echo ' <td align="center">' . $anzahl . '</td>';
echo ' <td align="right">' . nrFormat($artikel_array[$artikel]['art_preis']) . ' €</td>';
echo ' <td align="right">' . nrFormat(($artikel_array[$artikel]['art_preis'] * $anzahl)) . ' €</td>';
$summe += ($artikel_array[$artikel]['art_preis'] * $anzahl);
echo '<td align="center"><a href="warenkorb.php?modus=del_art&art_nr=' . $artikel . '" title="diesen Artikel aus dem Warenkorb entfernen" style="color: #FF0000; font-weight: bold;">X</a></td>';
echo '</tr>';
}
}
else
{
echo '<tr><td colspan="6">Keine Ware im Warenkorb</td></tr>';
}
?>
<tr>
<th colspan="4" align="left">Summe gesamt:</th>
<th><?php echo nrFormat($summe); ?> €</th>
<th><a href="warenkorb.php?modus=del_basket" title="kompletten Warenkorb löschen" style="color: #000000; font-weight: bold;">X</a></th>
</tr>
</table>
<!-- ########################################### -->
<!-- # Ende: Tabelle mit dem Warenkorb # -->
<!-- ########################################### -->
</td>
</tr>
<tr>
<th colspan="2" align="left"> </th>
</tr>
</table>
<!-- ########################################### -->
<!-- # Ende: Layout-Tabelle # -->
<!-- ########################################### -->
</body>
</html>
Vielen Dank schonmal.
Zuletzt bearbeitet: