Olaf: Projektskizze

Servus,
hatte hier schon mal zu einem kleinen Projekt gepostet.
Das Projekt konkretisiert sich inzwischen und ich würde es gerne kurz vorstellen.
Im Wesentlichen will ich ein modulares bzw. erweiterbares Framework für Formulare bauen. Ein Nutzer soll durch verschiedene Kategorien blättern können und zu jeder Kategorie in einem oder mehreren Formularen seine Wunsch-Werte eintragen können. Das Projekt wird nur als Demonstrator, d.h. mit einigen wenigen Kategorien und Formularen realisiert werden. Aber im Zweifelsfall soll eben auch belegt werden können, dass eine Erweiterung jederzeit möglich ist.
Ich habe das angedachte Framework mal skizziert:
Projektskizze
Jedes Formular wird in einen eigenen Div-Container geladen.
Beim Senden des Formulars werden die Werte per AJAX an eine Auswerte-Einheit(PHP) übergeben. Dort werden die Eingaben geprüft und entweder "OK" oder eine Text mit Fehlererläuterungen zurückgegeben.
Die Auswerteeinheit trägt bei positivem Kontrollergebnis die Werte in die Datenbank ein.
Das AJAX Skript gibt bei einer empfangenen Fehlermeldung diese über "alert" aus. Andernfalls ruft es das Entsprechende Form neu auf und übergibt das neue Form (das dann die aktualisierten DB-Werte enthält) an den DIV-Container und blendet einen "Aktualsisiert"-Hinweis ein.

Will ich neue Formulare ergänzen muss ich im Idealfall nur eine entsprechende Auswerteeinheit ergänzen und natürlich das Formular erstellen.   Im Datenmodell der DB sind die Erweiterungen einfach durch eine neue Tabelle mit der NutzerID als Fremdschlüssel zu realisieren. Im ungünstigen Fall muss ich formularspezifische AJAX-Skripte bauen, um den Formularinhalt als Parameter-String an die entsprechende Auswerte-Einheit zu übergeben.

Habt Ihr Ändernngsvorschläge, Kritiken oder Tipps?

Es grüßt und dankt
Olaf

  1. hi,

    sieht interessant aus.
    So als Idee, deine Formulare beinhalten immer die selben Feldtypen.
    Eventuell kannst du einfach z.b. in einer xml datei angeben, welche Typen, mit welchem Namen in welches DB-Feld sollen.

    Dann kannst du sogar per Formular neue Formulare erstellen.
    Ganz ohne Programmieraufwand.
    Für die Ajax schnittstelle, brauchst du so auch nur noch eine einzige Datei.

    Gruß Niklas

    --
    Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
    1. Dann kannst du sogar per Formular neue Formulare erstellen.
      Ganz ohne Programmieraufwand.
      Für die Ajax schnittstelle, brauchst du so auch nur noch eine einzige Datei.

      Gruß Niklas

      Servus Niklas. Die Formulare und Datenbanktabellen über ein Admin-Skritp automatisch erzeugen zu können hatte ich mir ebenfalls überlegt. Nur unterscheiden sich die Formulare stark und ich muss/will Wert auf eine hohe Usability bei den Formularen legen. Zudem wird es wie gesagt nur ein paar Kategorien/Formulare geben. Daher komme ich IMHO nicht um "hanggeschriebene" Formulare mit entsprechenden Kontrollroutinen für die Nutzereingaben drumrum.

      Es grüßt
      Olaf

      1. hi,

        ich habe das auch schon mal durchüberlegt.
        zumindest die speicherlogik kannst du so auf jeden fall dynamisch erstellen.
        Feld nehmen, entsprechend verarbeiten und speichern.
        Was gibt es shcon groß => text, zahl, kommazahl, selectfelder aus anderen tabellen, ...

        Für die Ausgabe kannst du in der XML eine bestimmte struktur anlegen.
        Damit kannst du z.b. einzelne Felder einrahmen usw.
        Ich hab das z.b. gemacht um für floatfelder 2 einzelne felder auszugeben.
        Für sonderfelder wie Datum kannst du mit der vorgeschlagenen sache auch hilfen ausgeben. Ich glaube so im Kopfüberschlagen, gibt es eigentlich nur 20-30 Feldtypen, die in frage kommen. (Datum, Datum + Uhrzeit, Uhrzeit, Ganzzahlen (nur positiv bzw auch negativ), kommazahlen (2 feldausgabe, nur pos bzw auch neg), ...

        Wenn du das ganze per OOP machst, kannst du neue feldtypen sehr einfach erweitern.

        Damit wären die einzelnen Felder sauber getrennt.
        Wo du die ausgibst ist dann immernoch dein Ding (wie gesagt, xml als vorschlag um die struktur einfach zu bauen)

        Gruß Niklas

        --
        Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.