Hi Leute ...
ich bin gerade dabei nen Warenkorbsystem in eine Homepage zu basteln. Soweit hab ich auch alles Problemlos erstellen können.
Ich hab auch schon soweit meine Grundfunktionen geschriben ... wie z.B. Artikel in den WK einfügen ... Warenkorb ausgeben ... Warenkorb abändern ... [...].
Hier mal ein kleiner Überblick meiner Funktionen:
bis auf diese "deleteArtikelInWarenkorb" funktioniert alles super. Nachdem ich nun die gerade genannt Funktion mehrfach umgeschriebn habe ... komme ich zu dem Punkt, dass meine ganze SESSION-Struktur nicht so das ware ist. Zumindest kriege ich es zum erbrechen nicht hin, dass ich ein Element in meinem Warenkorb lösche. Das heißt ich will werder die Artikel-Id noch die Menge der Elemente in der Session-Variable stehen haben.
Aber bevor jemand auf dieses Problem eingeht ... kann ich mit so einem Konstrukt halbwegs gut weiterarbeiten ... würdet Ihr das ganze System umstricken ? Was sind ewure Tipps für mich ... und viel wichtiger ... warum klappt meine Delete-Funktion nicht.
mfg
DiDi
P.S.
Hier ein Link um sich den Shop mal anzuschauen ....
http://w00bd561.dd8328.kasserver.com/shop.php
Sollte mal der Warenkorb kaputtgehen (weil man versucht null Artikel in den Warenkorb zu legen) ruft man die Seite am besten wie folgt auf:
http://w00bd561.dd8328.kasserver.com/shop.php?unsetWK=1
ich bin gerade dabei nen Warenkorbsystem in eine Homepage zu basteln. Soweit hab ich auch alles Problemlos erstellen können.
Ich hab auch schon soweit meine Grundfunktionen geschriben ... wie z.B. Artikel in den WK einfügen ... Warenkorb ausgeben ... Warenkorb abändern ... [...].
Hier mal ein kleiner Überblick meiner Funktionen:
Code:
function aktualisiereWarenkorb() {
$keys = array_keys($_REQUEST);
foreach ($keys as $key)
{
if (preg_match("/^menge_/", $key)) {
$pos = str_replace("menge_", "", $key);
$artikel = $_SESSION['warenkorb']['id'][$pos];
if ($_REQUEST[$key] > 0){
$_SESSION['warenkorb']['menge'][$pos] = $_REQUEST[$key];
} else {
#echo '------> '.$pos.' <br/>';
$_SESSION['warenkorb'] = deleteArtikelInWarenkorb($pos);
}
}
}
}
function deleteArtikelInWarenkorb($position) {
$warenkorb = array();
$anzWaren = countArtikelInWK();
for ($i=0; $i < $anzWaren; $i++) {
if ($i != $position) {
#unset($_SESSION['warenkorb']['id'][$i]);
#unset($_SESSION['warenkorb']['menge'][$i]);
$warenkorb['warenkorb']['id'][] = $_SESSION['warenkorb']['id'][$i];
$warenkorb['warenkorb']['menge'][] = $_SESSION['warenkorb']['menge'][$i];
}
}
$_SESSION['warenkorb'] = $warenkorb;
}
function addArtikel2Warenkorb($id) {
$check = artikelInWarenkorb($id);
if ($check === false) {
$_SESSION['warenkorb']['id'][] = $id;
$_SESSION['warenkorb']['menge'][] = 1;
} else {
$_SESSION['warenkorb']['menge'][$check] += 1;
}
}
function artikelInWarenkorb($id) {
$anzWaren = countArtikelInWK();
for ($i=0; $i < $anzWaren; $i++) {
if ($_SESSION['warenkorb']['id'][$i] == $id) return $i;
}
return false;
}
function countArtikelInWK() {
return count($_SESSION['warenkorb']['id']);
}
bis auf diese "deleteArtikelInWarenkorb" funktioniert alles super. Nachdem ich nun die gerade genannt Funktion mehrfach umgeschriebn habe ... komme ich zu dem Punkt, dass meine ganze SESSION-Struktur nicht so das ware ist. Zumindest kriege ich es zum erbrechen nicht hin, dass ich ein Element in meinem Warenkorb lösche. Das heißt ich will werder die Artikel-Id noch die Menge der Elemente in der Session-Variable stehen haben.
Aber bevor jemand auf dieses Problem eingeht ... kann ich mit so einem Konstrukt halbwegs gut weiterarbeiten ... würdet Ihr das ganze System umstricken ? Was sind ewure Tipps für mich ... und viel wichtiger ... warum klappt meine Delete-Funktion nicht.
mfg
DiDi
P.S.
Hier ein Link um sich den Shop mal anzuschauen ....
http://w00bd561.dd8328.kasserver.com/shop.php
Sollte mal der Warenkorb kaputtgehen (weil man versucht null Artikel in den Warenkorb zu legen) ruft man die Seite am besten wie folgt auf:
http://w00bd561.dd8328.kasserver.com/shop.php?unsetWK=1