body onUnload ... kann ich nich verwenden ...
Mario
- browser
Hallo!
Ich muss abfangen, wenn mein PopUp-Fenster geschlossen wird. Ne, nich für Nerv-Zwecke ;) Ich hab nen Shop gebaut, der in einem PopUp-Fenster initialisiert wird.
Mein Kunde wollte, dass der Warenkorb immer sichtbar ist, so hab ich das Shop-Fenster in 2 Frames unterteilt. Oben Artikel, unten Warenkorb. Während der Shop-Session wird der Wahrenkorb in eine temp. Datei geschrieben (yo, is nich der eleganteste Weg, aber mit mySQL kann ich mich irgendwie nich anfreunden). Wird die Bestellung versandt, wird der Warenkorb gelöscht. Allerdings würde ich auch die Datei gern löschen, wenn das Shop-Fenster geschlossen wird.
<body onUnload=...> funktioniert für diese Zwecke nicht. Wenn ich für den oberen oder unteren Frame das Tag-Attribut verwende, ruft er den Event auch auf, wenn der Frame neu geladen wird, z.B. wenn man einen Artikel in den Warenkorb hinzufügt / entfernt.
Auch in die Datei für das Frameset funktioniert das nicht. Da ruft er den Event gleich nach der Initialisierung auf.
Wäre für Tips echt dankbar!
Grüße, Mario :)
Hallo Mario,
Ich muss abfangen, wenn mein PopUp-Fenster geschlossen wird. Ne, nich für Nerv-Zwecke ;)
tja, wenn es für 'nicht-nerv-Zwecke' ginge es eben auch für Nerv-Zwecke :-)
Ich hab nen Shop gebaut, der in einem PopUp-Fenster initialisiert wird.
mhh... d.h. du schließt alle aus, die kein js haben?
Mein Kunde wollte, dass der Warenkorb immer sichtbar ist,
warum?
so hab ich das Shop-Fenster in 2 Frames unterteilt.
das hätte man doch auch so machen können, dass der Warenkorb in einer Spalte auf der Seite zu sehen ist.
Während der Shop-Session wird der Wahrenkorb in eine temp. Datei geschrieben
ich nehme jetzt mal an auf der Server mit php oder was ähnlichem (auf dem Client geht das - bis auf im IE vielleicht - ja nicht).
(yo, is nich der eleganteste Weg, aber mit mySQL kann ich mich irgendwie nich anfreunden).
warum nicht? :-)
Wird die Bestellung versandt, wird der Warenkorb gelöscht.
Wenn die Bestellung versandt wird, wird doch die tmp-Datei gelöscht, oder?
Allerdings würde ich auch die Datei gern löschen, wenn das Shop-Fenster geschlossen wird.
Da müsstest du wahrscheinlich ein Script schreiben, das gelegentlich mal aufräumt :-)
Sicher zu überwachen, ob ein Fenster offen ist geht nicht. Du musst die Dateien halt nach einer bestimmten Zeitspannen (evtl. der Inaktivität) löschen, bzw. irgendwann Nachts alles löschen. Wenn dein Shop mit php geschrieben ist kann man doch den Warenkorbe mit in der Session speichern (die Sessions werden doch automtisch gelöscht, oder?).
Grüße aus Nürnberg
Tobias
Hi Tobias und danke für deine Antwort! :)
Ich muss abfangen, wenn mein PopUp-Fenster geschlossen wird. Ne, nich für Nerv-Zwecke ;)
tja, wenn es für 'nicht-nerv-Zwecke' ginge es eben auch für Nerv-Zwecke :-)
Yo, aber das wollt ich von vornherein ausschließen ;)
Ich hab nen Shop gebaut, der in einem PopUp-Fenster initialisiert wird.
mhh... d.h. du schließt alle aus, die kein js haben?
Jein, wenn kein JS eingeschalten is, wird darum gebeten, es einzuschalten. Aber ohne JS hab ich das halt nich hinbekommen können, da der Warenkorb bei jedem hinzufügen eines Artikels geupdatet werden muss ...
Mein Kunde wollte, dass der Warenkorb immer sichtbar ist,
warum?
Damit man nich immer extra schauen muss, wieviel man schon einkauft und noch ausgeben kann. Er meinte, dass manche Kunden ja nur bis zu einem bestimmten Betrag bestellen wollen und er wollte das so übersichtlich wie möglich haben. Da dacht ich an Frames ;)
so hab ich das Shop-Fenster in 2 Frames unterteilt.
das hätte man doch auch so machen können, dass der Warenkorb in einer Spalte auf der Seite zu sehen ist.
Hmmm ... kein schlechter Gedanke. Bau den mal bitte weiter aus :)
Während der Shop-Session wird der Wahrenkorb in eine temp. Datei geschrieben
ich nehme jetzt mal an auf der Server mit php oder was ähnlichem (auf dem Client geht das - bis auf im IE vielleicht - ja nicht).
Yup, PHP ...
(yo, is nich der eleganteste Weg, aber mit mySQL kann ich mich irgendwie nich anfreunden).
warum nicht? :-)
Weil ich es 1. auf meinem lokalen Linux-Server nich eingerichtet bekommen hab und 2. auch keine Lust hab, mich durch ne ellenlange engl. Doku zu wühlen, wenn man das sicherlich mit paar Befehlen klären könnte. 3. hab ich echt schon oft Seiten besucht und gleich zu beginn den netten Text erhalten "Connection to mySQL Database failed ... blabla". Das is mir irgendwie zu unsicher, dass die DB mal nich erreichbar is. Aber elegant isses, yo. Schlecht find ichs auch nich, hab damit mal in nem Praktikum arbeiten können und ich kam da auch gut mit dem Syntax klar. Aber ich kriegs halt hier nich eingerichtet. Bräuchte jemanden, der daneben sitzt und mirs erklärt. :D
Wird die Bestellung versandt, wird der Warenkorb gelöscht.
Wenn die Bestellung versandt wird, wird doch die tmp-Datei gelöscht, oder?
Yup
Allerdings würde ich auch die Datei gern löschen, wenn das Shop-Fenster geschlossen wird.
Da müsstest du wahrscheinlich ein Script schreiben, das gelegentlich mal aufräumt :-)
Sicher zu überwachen, ob ein Fenster offen ist geht nicht. Du musst die Dateien halt nach einer bestimmten Zeitspannen (evtl. der Inaktivität) löschen, bzw. irgendwann Nachts alles löschen.
Yo, hab ich auch schon gedacht, das öfters mal selbst
auszumisten. Aber wirklich professionell is das auch nich.
»»
Wenn dein Shop mit php geschrieben ist kann man doch den Warenkorbe mit in der Session speichern (die Sessions werden doch automtisch gelöscht, oder?).
Wie?
Bis später!
Und Grüße aus Dresden,
Mario
Hallo Mario,
Ich hab nen Shop gebaut, der in einem PopUp-Fenster initialisiert wird.
mhh... d.h. du schließt alle aus, die kein js haben?
Jein, wenn kein JS eingeschalten is, wird darum gebeten, es einzuschalten.
und du meinst, der User schaltet das dann ein (wenn js überhaupt vorhanden ist und der User weiß wie man das einschaltet - immer von einem dau ausgehen :-))
Aber ohne JS hab ich das halt nich hinbekommen können, da der Warenkorb bei jedem hinzufügen eines Artikels geupdatet werden muss ...
mhh... vielleicht habe ich dein Prinzip den Warenkorb zu speichern nicht verstanden, aber das Hinzufügen eines Artikels geschieht doch mittels eines links, oder? Dann kannst du das doch direkt machen - da brauch man doch kein js...
Mein Kunde wollte, dass der Warenkorb immer sichtbar ist,
warum?
Damit man nich immer extra schauen muss, wieviel man schon einkauft und noch ausgeben kann. Er meinte, dass manche Kunden ja nur bis zu einem bestimmten Betrag bestellen wollen und er wollte das so übersichtlich wie möglich haben.
Dann würde doch eigentlich eine kleine Anzeige, wieviel man schon im Warenkorb hat, oder?
das hätte man doch auch so machen können, dass der Warenkorb in einer Spalte auf der Seite zu sehen ist.
Hmmm ... kein schlechter Gedanke. Bau den mal bitte weiter aus :)
naja, du machst einfach 2 (oder mehr) Spalten, eine relativ schmal, darin steht dann der Inhalt des Warenkorbs (z.B. nur der Titel eines Artikels) und auf die andere (breitere) kommt der normale Inhalt der Seite.
also etwas so:
+-----+-------------------+
| | |
| 1) | 2) |
| | |
| | |
+-----+-------------------+
möglich wäre es auch das nicht auf Spalten sondern auf Reihen zu verteilen:
+-------------------------+
| 1) |
+-------------------------+
| |
| 2) |
| |
+-------------------------+
warum nicht? :-)
- auch keine Lust hab, mich durch ne ellenlange engl. Doku zu wühlen, wenn man das sicherlich mit paar Befehlen klären könnte.
Dann must du halt was deutsches suchen :-)
- hab ich echt schon oft Seiten besucht und gleich zu beginn den netten Text erhalten "Connection to mySQL Database failed ... blabla".
das habe ich soweit ich weiß nocht nicht gesehen - das muss aber nicht am Ausfall der DB liegen, sondern kann auch an was anderem (z.B. falsches Passwort) liegen.
Schlecht find ichs auch nich, hab damit mal in nem Praktikum arbeiten können und ich kam da auch gut mit dem Syntax klar.
dann hast du doch schon mal die Vorraussetzung um damit arbeiten zu können :-)
Aber ich kriegs halt hier nich eingerichtet. Bräuchte jemanden, der daneben sitzt und mirs erklärt. :D
vielleicht hilft dir lamp (-> einfach mal mit google suchen)?
Sicher zu überwachen, ob ein Fenster offen ist geht nicht. Du musst die Dateien halt nach einer bestimmten Zeitspannen (evtl. der Inaktivität) löschen, bzw. irgendwann Nachts alles löschen.
Yo, hab ich auch schon gedacht, das öfters mal selbst
auszumisten. Aber wirklich professionell is das auch nich.
ich denke da bleibt dir nichts anders übrig :-) ob das professionell ist weiß ich nicht, da musst du schon die Profis hier fragen :-)
Wenn dein Shop mit php geschrieben ist kann man doch den Warenkorbe mit in der Session speichern (die Sessions werden doch automtisch gelöscht, oder?).
Wie?
einfach mit z.B. $_SESSION["warenkorbinhalt"] .= " neuereintrag"; (damit hängst du den neuen Wert an den bisherigen Wert dran) oder so ähnlich (es kommt darauf an, mit welcher php-Version du arbeitest).
Grüße aus Nürnberg
Tobias
Hi Tobi! :)
Jein, wenn kein JS eingeschalten is, wird darum gebeten, es einzuschalten.
und du meinst, der User schaltet das dann ein (wenn js überhaupt vorhanden ist und der User weiß wie man das einschaltet - immer von einem dau ausgehen :-))
Hm, yo ... da haste Recht ...
mhh... vielleicht habe ich dein Prinzip den Warenkorb zu speichern nicht verstanden, aber das Hinzufügen eines Artikels geschieht doch mittels eines links, oder? Dann kannst du das doch direkt machen - da brauch man doch kein js...
Der Shop is im Moment so aufgebaut:
+-------------------------+
| 1) |
| |
| |
| |
+-------------------------+
| 2) |
+-------------------------+
1) der Shop
2) ist der Warenkorb
Du kannst auf nen Button klicken (form submit), der fügt die Artikelinfo an die Datei an und reloadet per JS den 2. Frame neu ... der liest die Datei aus und zeigt den Warenkorb halt an ...
Dann würde doch eigentlich eine kleine Anzeige, wieviel man schon im Warenkorb hat, oder?
Hmm ... yo, ich bin offen für alles :P im Moment is der Shop noch in der Entwicklung und das is z.Zt. nur das Debug-Design; aber ich hatte da schon vor, die Frames ins endgültige Design mit zu übernehmen ... aber das verwerf ich jetz doch immer mehr ;)
naja, du machst einfach 2 (oder mehr) Spalten, eine relativ schmal, darin steht dann der Inhalt des Warenkorbs (z.B. nur der Titel eines Artikels) und auf die andere (breitere) kommt der normale Inhalt der Seite.
Wie? Mit Tables?
warum nicht? :-)
- auch keine Lust hab, mich durch ne ellenlange engl. Doku zu wühlen, wenn man das sicherlich mit paar Befehlen klären könnte.
Dann must du halt was deutsches suchen :-)
Yo, hab ich auch. Aber das hats nich gebracht. Hat leider nich die Probleme behandelt, die sich bei mir aufgetan haben.
- hab ich echt schon oft Seiten besucht und gleich zu beginn den netten Text erhalten "Connection to mySQL Database failed ... blabla".
das habe ich soweit ich weiß nocht nicht gesehen - das muss aber nicht am Ausfall der DB liegen, sondern kann auch an was anderem (z.B. falsches Passwort) liegen.
Letztens wars die www.mysql.com ... Aber nu geht sie wieder.
Schlecht find ichs auch nich, hab damit mal in nem Praktikum arbeiten können und ich kam da auch gut mit dem Syntax klar.
dann hast du doch schon mal die Vorraussetzung um damit arbeiten zu können :-)
Yo :P
Aber ich kriegs halt hier nich eingerichtet. Bräuchte jemanden, der daneben sitzt und mirs erklärt. :D
vielleicht hilft dir lamp (-> einfach mal mit google suchen)?
Ah, du meinst http://www.baach.de/lamp-tutorial.html ? tHx! :) Mal lesen! Testen kann ich grad nich, der Server steht auf Arbeit *g*
... Aber wirklich professionell is das auch nich.
ich denke da bleibt dir nichts anders übrig :-) ob das professionell ist weiß ich nicht, da musst du schon die Profis hier fragen :-)
Die würden mir sicher sagen, dass es nich Professionell is :P
einfach mit z.B. $_SESSION["warenkorbinhalt"] .= " neuereintrag"; (damit hängst du den neuen Wert an den bisherigen Wert dran) oder so ähnlich (es kommt darauf an, mit welcher php-Version du arbeitest).
Hab mir die neueste gestern gezogen. Halt noch installieren. Hm, wenn das funktioniert, wie entferne ich da wieder einen Eintrag?
Grüße, Mario
Sooo, ich hab das Ganze jetzt mal ne Runde ausgemistet und die Frames rausgehauen. Hab den Shop mit Tables in 2 Spalten geteilt
+-----------------+-------+
| | |
| | |
| | |
| 1 | 2 |
| | |
| | |
+-----------------+-------+
1 is der Shop
2 der Warenkorb
... und es sieht 1. besser aus und 2. is auch leichter mit zu arbeiten. :) Wenn ich wieder auf Arbeit bin, quäl ich mich und meinen Server nochma mit mySQL.
Grüße, Mario
Hallo Mario,
Du kannst auf nen Button klicken (form submit), der fügt die Artikelinfo an die Datei an und reloadet per JS den 2. Frame neu ... der liest die Datei aus und zeigt den Warenkorb halt an ...
mhh... etwas umständlich oder? Das Formular könnte doch als target auch einfach den oberen Frame haben, der fügt die übergebne Artikelinfo ein und zeigt sie dann gleich an. Bleibt nur zu fragen, was dann mit dem unteren Frame passiert... :-)
naja, du machst einfach 2 (oder mehr) Spalten, eine relativ schmal, darin steht dann der Inhalt des Warenkorbs (z.B. nur der Titel eines Artikels) und auf die andere (breitere) kommt der normale Inhalt der Seite.
Wie? Mit Tables?
zum Beispiel (auch wenn mich manche hier dafür schlagen :-)) alternativ evtl mit <div>s
Letztens wars die www.mysql.com ... Aber nu geht sie wieder.
naja, wenn es bei denen nicht geht wo soll e dann gehen :-)
vielleicht hilft dir lamp (-> einfach mal mit google suchen)?
Ah, du meinst http://www.baach.de/lamp-tutorial.html ? tHx! :) Mal lesen!
da habe ich auch gefunden als ersten Treffer :-)
Testen kann ich grad nich, der Server steht auf Arbeit *g*
Arbeit? - nee jetzt sind erst mal 2 Wochen Ferien :-p
ich denke da bleibt dir nichts anders übrig :-) ob das professionell ist weiß ich nicht, da musst du schon die Profis hier fragen :-)
Die würden mir sicher sagen, dass es nich Professionell is :P
weiß nicht... irgendwie muss man es ja machen :-)
einfach mit z.B. $_SESSION["warenkorbinhalt"] .= " neuereintrag"; (damit hängst du den neuen Wert an den bisherigen Wert dran) oder so ähnlich (es kommt darauf an, mit welcher php-Version du arbeitest).
Hab mir die neueste gestern gezogen. Halt noch installieren. Hm, wenn das funktioniert, wie entferne ich da wieder einen Eintrag?
ich würde mal sagen indem du den Inhalt in ein Array steckst (explode(" ",$_SESSION["warenkorbinhalt"]) - wobei das Leerzeichen auch ein anderes sein kann, du musst halt die einzelnen einträge immer mit irgendwas trennen) und dann mit z.B. unset ein Element löschen und dann mit implode da ganze wieder zusammenbauen.
Grüße aus Nürnberg
Tobias
Hallöle Tobias!
mhh... etwas umständlich oder? Das Formular könnte doch als target auch einfach den oberen Frame haben, der fügt die übergebne Artikelinfo ein und zeigt sie dann gleich an. Bleibt nur zu fragen, was dann mit dem unteren Frame passiert... :-)
Das hat sich ja nu erledigt ;) Hab das Shopgerüst, wie schon gesagt, ent-JavaScript-ed und auch ent-framed *g*
Und es geht echt besser :)
Wie? Mit Tables?
zum Beispiel (auch wenn mich manche hier dafür schlagen :-)) alternativ evtl mit <div>s
Mit divs? Wie soll das gehen? Aus der SelfHTML-Hilfe bin ich nich schlau geworden *g*
Letztens wars die www.mysql.com ... Aber nu geht sie wieder.
naja, wenn es bei denen nicht geht wo soll e dann gehen :-)
Hehehe *g*
ich würde mal sagen indem du den Inhalt in ein Array steckst (explode(" ",$_SESSION["warenkorbinhalt"]) - wobei das Leerzeichen auch ein anderes sein kann, du musst halt die einzelnen einträge immer mit irgendwas trennen) und dann mit z.B. unset ein Element löschen und dann mit implode da ganze wieder zusammenbauen.
Yoo, stümmt. tHx! Mal probieren!
Grüße, Mario :)
Hallo Mario,
Das hat sich ja nu erledigt ;) Hab das Shopgerüst, wie schon gesagt, ent-JavaScript-ed und auch ent-framed *g*
juhu - ich habe jemanden von Frames bekehrt :-)
Und es geht echt besser :)
sacht' ich ja :-)
Wie? Mit Tables?
zum Beispiel (auch wenn mich manche hier dafür schlagen :-)) alternativ evtl mit <div>s
Mit divs? Wie soll das gehen? Aus der SelfHTML-Hilfe bin ich nich schlau geworden *g*
du musst etwas mit position:absolute;, right:XXpx; und left:XXpx; rumbasteln:
css-Teil:
body { width:100%; margin:10px 0px 10px 0px; padding-top:10px; }
div { position:absolute; height:120px; }
#breit { background-color:#0000FF; left:170px; right:10px; }
#schmal { background-color:#009E00; left:10px; width:150px; }
html-Teil:
<div id="schmal">schmal</div>
<div id="breit">breit</div>
das ganze gibt zwei Blöcke, einen der 150x120px groß ist und einen der den Rest belegt und ebenfalls 120px hoch ist (die höhe ist natürlich variabel).
Grüße aus Nürnberg
Tobias
Hey Tobias!
...
das ganze gibt zwei Blöcke, einen der 150x120px groß ist und einen der den Rest belegt und ebenfalls 120px hoch ist (die höhe ist natürlich variabel).
Danke! Mal probieren.
Grüße, Mario
Sooo ... ab heut bin ich wieder auf Arbeit und hab mich gleich mal hinter das mySQL auf meinem Server geklemmt und teilweise die Schritte aus dem LAMP-Tut wiederholt (hab mir nich die Sources gezogen ... war zu groß fürs Modem :D). mySQL is also schon installiert. Hab ihn gestartet mit "safe_mysqld &", ging los, dann User und PW vergeben, ging auch. Dann halt wieder wie schonmal der Test, wo es scheiterte: Ne einfache Datenbank per PHP anlegen. Meckert er, dass linux.local (so heisst der Server) nich an der DB connecten darf. Hab mich durch ein paar Config-Dateien gewühlt, versucht, dem das zu erlauben, wieder probiert, gleiches Ergebnis ... wieder rumprobiert, wieder das selbe Ergebnis ... sein gelassen :P Wo kann ich das denn Einstellen?
Grüße, Mario