Wie vermeidet man am besten Redunaz in Formularen oder Table ansichten

splasch

Erfahrenes Mitglied
Ihr kennt sicher das Problem. Oft verwendet man das ein und selbe Formular mit entuell leicht abgeänderten Ansicht bzw Einstellungen.

Zum Beispiel. Ein Forumlar zur Daten eingabe und das selbe zum Edieren der Datensätze.
Oder man hat nee Tablen liste die ähnlich Aufgebaut sind und sich meisten nur von den Spalten reihenfolge ändern.

Gibt ja irgdend eine Möglichkeit solche Redunazen zu verhindern vorallem wenn nur kleine änderungen drin sich wie bsp. spalten vertauscht und andere sortier reihen folge unsw.

Ich glaube nähmlich das ich da noch etwas umständlich code. Das ganze sollte aber ohne Template lösbar sein.

Mfg Splasch
 
Am besten schreibst du dir Funktionen oder Klassen, die diese Aufgaben aufgrund übergebener Parameter übernehmen. Diese würden dann allerdings tatsächlich recht komplex werden.
 
Mh, sowas mach ich auch, z.B. bei einem Newsscript. Da sollen Formulardaten entweder aus der Datenbank geholt und dargestellt werden oder das formular für die News leer bleiben.

Das schaff ich in der Regel durch benutzen von $_POST als value="". Wenn ich eine neue News schreiben will, rufe ich das formular auf, dabei dürfen natürlich keine $_POST-Variablen vorhanden sein (if(!isset($_POST['submit'])): unset($_POST);endif;). Wenn ich aus der Datenbank aber eine News editieren will, rufe ich die Daten aus der Datenbank ab und weise den $_POST-Variablen den Wert zu, das funktioniert ja.

Wenn ich z.B. irgend eine Option nicht im Formular haben brauche, regel ich das auch per if(), in dem ich im Template eine if-abfrage mit einer bestimmten variable gestalte (z.B. if($option_comment == "1"): echo '<formulardaten>'; endif;), und im Script, dass das Formular ausgibt, setze ich dann $option_comment auf 1 oder 0, je nach dem, wie ich das Formular brauche.

Demnächst werd ich das aber recht viel anders machen, zumindest mal testen... Ich werd sozusagen wirklich "Redundant" arbeiten, wenn man das so nennen kann. Ich werde für jedes Formularfeld, das man braucht, ein einzelnes Template gestalten und die Formular-Feldnamen und Feldwerte jeweils einen Platzhalter zuweisen. Das Script setzt dann das Formular später angepasst an die Datenbank selbst zusammen.

Ich hoff, dass ich dir da n bisl helfen konnte, und ich mich nich allzu kompliziert ausgedrückt hab, wenn unklarheiten sind einfach posten, kann aber erst sonntag antworten, bin samstag auf der GC ;)
 
Von ähnlichen Funktionen mach ich sehr häufig Gebrauch. Meine Formulare mit Eingabemasken, Checkboxen etc. erhalten alle eine Prcocedur SetData und GetData. Mit SetData werden die Daten von einer Datenstruktur z.B. Record in die Maske geschrieben und mit GetData von der Maske zurück in die Datenstruktur. Bei jedem Öffnen Datenmaske werden die Daten mit SetData in die Maske geschrieben. SetData wird hierzu vor Maske.ShowModal ausgeführt. Du mußt nur sicherstellen, daß Deine Datenstruktur entweder gültige Daten enthält, wenn Du editieren willst oder Initialisiert (z.B. enthalten alle Strings Leerstrings, Zahlen werden mit 0 initialisiert usw.) ist, wenn Du neue Daten eingeben willst. Sobald Du z.B. den OK-Button betätigst werden die Daten mit GetData von der Maske in die Struktur geschrieben. Wenn der Cancel-Button gedrückt wird, wird GetData nicht aufgerufen und die Daten der Maske werden verworfen.
Natürlich kannst Du GetData und SetData auch in der Maske selbst aufrufen. So kann z.B. recht einfach eine Undofunktion realisiert werden

Gruß Twinsetter
 
Zurück