Beim verlassen der Seite in Datenbank speichern!

Ultraflip

Erfahrenes Mitglied
Hi Leute!

Ich hätte da ein kleines Problem ... Ich bastel gerade an einem Gästebuch, in dem die Einträge in DIV-Boxen angezeigt werden ... die Boxen können mit Javascript per Drag'n'Drop verschoben werden ... die Position wird in 2 variablen aus der Datenbank ausgelesen (margin-top, margin-left) ... ich hätte jetzt gerne, dass beim verlassen der Seite die aktuelle Position in die Datenbank geschrieben wird ...

Also praktisch müssten 2 Werte beim verlassen der Seite in die Datenbank geschrieben werden ...

Ich hoffe mir kann jemand sagen, wie man das hinbekommt :)

[EDIT] Oder kann man nach jeder Aktion von Javascript aktualisieren? Ist die Seite dann mit Modem überhaupt noch benutzbar? [/EDIT]

MfG
Ultraflip
 
Zuletzt bearbeitet:
Dann solltest du via onClose(); ein Fenster aufrufen, die Werte übergeben und dann in dem dortigen Fenster die query anstossen.
Dann das Fenster gleich wieder schliessen.
 
Hi,
das wirst du auf elegante Weise nicht hinbekommen.
Die vorgeschlagene onClose() Methode in Verbindung mit einem POST ist zwar möglich, allerdings mehr als ein Workaround... (du musst abfragen ob JS aktiviert ist, welche Browserversion genutzt wird etc.)...
Das gleiche Problem hast Du aber allgemein wenn Du das Drag & Drop mit JS implementierst.
 
JS war eh Grundvorraussetzung, deshalb bin ich da nicht weiter darauf eingegangen.
Die Methode bei dem onClose-Popup ist aber GET und nicht POST, oder wie willst du das via POST lösen?
 
Eine weiter Möglichkeit wäre die Verwendung von AJAX (Asynchrones JavaScript und XML).
Hierbei wird ohne dass der User es merkt, eine weiter Anfrage an den Server geschickt.

Google Suggest verwendet diese Methode beispielsweise um sofort bei der Eingabe nach den potentiellen Wörtern zu suchen: http://www.google.com/webhp?complete=1&hl=en
 
Mittlerweile hab ich einen Ansatz gefunden ... ich habe eine Funktion 'onmausdown' in meinem Javascript, die bei Absetzen aufgerufen wird ... Wäre es möglich beim Abestzen die Daten in die Datenbank zu schreiben?

Würde das viel Traffic erzeugen?

MfG
Ultraflip
 
Ich hab eine (zwar nicht so schöne, aber funktionierende) Lösung gefunden ... Bei jedem Absetzten der Divs übergeb ich die ID, X- und Y-Koordinate per "comments.php?id=4..." damit die Seite aber nicht immer neu läd aktualisier ich aber nur einen IFrame mit width="0" und height="0" ...

Die Daten werden abgefragt, überprüft und in die Datenbank geschrieben ...

Klappt in allen Browsern und ist deshalb (für mich) akzeptabel ...

MfG
Ultraflip
 
@Jörg:
Mit JS kannst Du auch jederzeit ein Submit und damit ein POST auslösen (func doSubmit());

Ist hier aber auch sinnlos, wenn JS nicht aktiviert ist :)

Ich hab das eigentlich so gemeint, dass der User das Layout manuell speichern kann und man sich nicht auf den onClose() Event-Handler verlässt.
Ich weiß nämlich nicht, ob den alle Browser unterstützen...
 
Zurück