|
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
JonasKahlert Neuer User
Anmeldungsdatum: 07.01.2010 Beiträge: 1
|
07.01.2010 22:44 QF: Form wiederherstellen -> Controller Objekt persistier |
|
|
Hallo,
es geht um QuickForm:
ich benutze den Controller für ein sehr komplexes Formular, das ähnlich dem State-Machine bzw. dem Wizard- Beispiel aufgebaut ist. Am Ende werden alle Daten in eine Datenbank geschrieben. Nun soll alles um folgende Funktionalität erweitert werden:
Ein Benutzer soll zu irgendeinem späteren Zeitpunkt eine bereits gespeicherten Datensatz erneut aufrufen können, um diesen im gewohnten Formular zu editieren. Daher sollten die Felder natürlich mit den vorherigen Werten befüllt sein.
Meine Idee dazu war folgende: Wenn alle Werte in die Datenbank gespeichert werden serialisiere ich das Controller-Objekt und schreibe es zusätzlich in ein (LONGTEXT-) Datenbankfeld. Der Controller enthällt ja auch alle Pages und die Values dazu etc.
Wenn ich aber nun ein gespeichertes Controller-Objekt deserialisiere, und run() ausführe, gibt es einen HTTP-Fehler: ein "never-ending" redirect.
Das Problem ist glaube ich, dass ich noch nicht so ganz die Funktionweise des Controllers verstanden habe und mich da deshalb schwertue.
Wie kann ich die oben beschrieben Funktionalität am elegantesten implementieren, OHNE einzeln alle Datenbankfleder erneut auslesen zu müßen? Welche Objekte muss ich persistieren und an welcher Stelle wieder deserialisieren? Wäre sehr dankbar für Ideen!
Vielen herzlichen Dank im Voraus!
Jonas |
|
| Nach oben |
|
 |
mark Power User
Anmeldungsdatum: 31.05.2004 Beiträge: 958
|
09.01.2010 0:04 |
|
|
Durch das Serialisieren des ganzen Objekts machst du dir vermutlich eher das Leben schwer, denn Erweiterungen oder Änderungen am Skript würden dann bereits existierenden Datensätzen "widersprechen".
Ich habe schon länger nicht mehr mit QFC gearbeitet, aber eigentlich sollte setDefaults() doch genau das Gwünschte erfüllen?
http://pear.php.net/manual/en/package.html.html-quickform-controller.html-quickform-controller.setdefaults.php
Du musst die Werte ja nicht einzeln setzen, sondern kannst ein "SELECT * FROM example WHERE x_id = 17" machen und das Ergebnis an setDefaults() übergeben. "Überzählige" Werte werden dabei von QF(C) ignoriert. |
|
| Nach oben |
|
 |
|
|
|
Zu Deinen Favoriten hinzufügen
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|