 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
29.08.2003, 12:03
|
#1
|
|
TP-Member
Registriert seit: Mar 2003
|
array in session
PHP-Code:
session_name(warenkorb);
session_start();
$_SESSION['produkt']=$_POST['produkt'];
$_SESSION['menge']=$_POST['menge'];
if($korb == "korb"){
echo $menge," mal ",$produkt,"<br>";
session_register("produkt","menge");
echo "im warenkorb gespeichert";
}
also so weit bin ich mal, das funktioniert alles
nur wird die session jedesmal überschrieben, wenn
ein neuer artikel dazukommt, logisch.
meine Frage:
wie schaff ich es, dass jeder neue artikel (und seine menge)
in einem array gespeichert werden ?
(auf darauffolgende freie plätze natürlich)
also aus ständigem
$produkt $menge überschreiben wird
$produkt[0] $menge[0]
$produkt[1] $menge[1]
..... .....
oder:
wie löst ihr sowas?
|
|
|
29.08.2003, 12:25
|
#2
|
|
TP-Veteran
Registriert seit: Oct 2001
Ort: Oberau
|
Hi, probiers mal mit der KLasse:
PHP-Code:
class warenkorb {
var $korb; // Storage Array
// Konstruktor
function warenkorb (){
if ($_SESSION["warenkorb"]){
$this = $_SESSION["warenkorb"];
} else {
$_SESSION["warenkorb"] = $this;
}
}
// Hinzufügen
function newPos ($artikel,$menge=1){
$this->korb[$artikel] = $menge;
$_SESSION["warenkorb"] = $this;
return 1;
}
// Löschen
function delPos ($artikel){
unset($this->korb[$artikel]); // Löschen
$_SESSION["warenkorb"] = $this;
return 1;
}
// Ändere Postion
function changePos ($artikel,$menge=1){
$this->korb[$artikel] = $menge;
$_SESSION["warenkorb"] = $this;
return 1;
}
// Zerstören
function destroy (){
unset ($this->korb);
if (session_is_registered("warenkorb"))
session_unregister ("warenkorb");
return 1;
}
// zeige
function display (){
$korb = $this->korb;
return $korb;
}
}
// Aufruf so:
session_start();
$korb = new warenkorb();
// neue Position
$korb->newPos(4837482,10);
Is im Prinzip von Longfang's WEbbased Formular Workshop. Nur halt auf Warenkorb usage umgebaut ...
mfg Alex
Geändert von holunda (29.08.2003 um 12:27 Uhr).
|
|
|
29.08.2003, 13:23
|
#3
|
|
TP-Member
Registriert seit: Mar 2003
|
das ist mir irgendwie zu steil
kannst mir "konstruktor" und "hinzufügen" erklären?
|
|
|
15.12.2003, 16:40
|
#4
|
|
TP-Member
Registriert seit: Aug 2002
|
wie kann ich dann den wert ausgeben
??
$korb->display(); //zeigt er nicht an//
thanx
bball
|
|
|
15.12.2003, 16:47
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Die Methode macht nix anderes, als den gesamten "Korbinhalt" zurückzugeben.
PHP-Code:
$korbinhalt = $korb->display();
print_r($korbinhalt);
Gruss
Jan
|
|
|
15.12.2003, 18:00
|
#6
|
|
TP-Member
Registriert seit: Aug 2002
|
hi jan,
hab versucht es so einzubauen, aber es gibt mir nichts aus obwohl im session_encode der inhalt zu sehen ist.......
thanxs
bball
|
|
|
16.12.2003, 12:35
|
#7
|
|
TP-Member
Registriert seit: Aug 2002
|
weiß jemand rat??????
thanxs
bball
|
|
|
16.12.2003, 13:35
|
#8
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
vielleicht hats mit der bildschirmeinstellung zu tun?
Hast du den Kontrast runtergedreht?
.... lass doch mal den code rüberwachsen, dann brauchen wir nicht zu raten, was bei dir falsch sein könnte.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
19.01.2004, 12:59
|
#9
|
|
TP-Junior
Registriert seit: Jan 2004
Ort: Köln
|
wenn ich den Inhalt wieder gebe, dann erhalte ich dies hier:
PHP-Code:
Array ( [Artikel bla bla] => 5 [Artikel bla bla bla] => 1 )
Ich weiss nur nicht, wie ich dass dann richtig anzeigen kann.
Ich will auch diese löschen und MengeÄnder Funktionen benutzen aber ich kann die nicht direkt in den Warenkorb einbauen. Bitte um rat ...
|
|
|
19.01.2004, 13:07
|
#10
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Das sind die Daten, die sich in der Variable befinden. -> www.php.net/print_r
Ansprechen tust du die Teile ganz normal über den Array-Index.
Gruss
Jan
|
|
|
19.01.2004, 15:20
|
#11
|
|
TP-Junior
Registriert seit: Jan 2004
Ort: Köln
|
ich checke das nicht, wie ich die einzelnen Werte aus dem Array auslesen kann.
z.B. echo $artikel[1] oder so ... verstehst du was ich meine?
ich verzweifle.
|
|
|
19.01.2004, 15:25
|
#12
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Du kannst die Daten aus dem Array natürlich nur so auslesen, wie du sie auch reinpackst... Bei deinem Beispiel:
Code:
Array ( [Artikel bla bla] => 5 [Artikel bla bla bla] => 1 )
kannst du die Datensätze natürlich auch nur über deren Index ansprechen, den du gegeben hast:
PHP-Code:
echo $arrayname['Artikel bla bla'];
echo $arrayname['Artikel bla bla bla'];
Wobei sich holunda womöglich den Index mit der Artikel-Id belegen wollte und nicht mit dem Artikelnamen (da der ja evtl. nicht eindeutig ist). Hab mich mit der Klasse nicht auseinander gesetzt. Aber so wäre es am logischsten.
Gruss
Jan
|
|
|
19.01.2004, 15:40
|
#13
|
|
TP-Junior
Registriert seit: Jan 2004
Ort: Köln
|
Also reinpacken tue ich die sie ja mit der Funktion
Code:
$korb->newPos(200401,1);
auf das Beispiel hier bezogen, was muss ich genau schreiben um, z.B. den ersten Artikel angezeigt zu bekommen.
Ich will das dann später in einer for Schleife anzeigen lassen und da wäre die Art die du angegeben hast etwas problematisch.
Danke schon mal für die Mühe, gruß Chris
|
|
|
19.01.2004, 15:43
|
#14
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Du musst dich selbstverständlich mit Arrays auskennen -> www.php.net/array um diese zu verarbeiten. Am besten mit foreach().
Nochmal: print_r() ist eher eine Funktion zum debuggen. Damit kann man sich eine gesamte Variable rekusriv ausgeben lassen.
Gruss
Jan
|
|
|
19.01.2004, 15:52
|
#15
|
|
TP-Junior
Registriert seit: Jan 2004
Ort: Köln
|
auskennen tu ich mich schon mit Arrays, nur in diesem Fall weiss ich einfach nicht, wie ich an diese Sache rangehen soll.
Ich gib mal nen Beispiel:
PHP-Code:
<?php
include('lib.php'); // Inhalt der ganzen Funktionen
session_start();
$korb = new warenkorb();
$korb->newPos("Artikel01","1");
$korb->newPos("Artikel02","5");
$korb->newPos("Artikel02","2");
?>
Wie kann ich jetzt die einzelnen Artikel anzeigen lassen, oder alle zusammen. Sry, dass ich mich so doof anstelle, aber ich check es einfach nicht ... :-/
Gruß Chris
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:32 Uhr.
|
 |