Ankündigung

Einklappen
Keine Ankündigung bisher.

Formulare/Validierung/Generierung/Miniworkflow

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formulare/Validierung/Generierung/Miniworkflow

    Hallo,
    auch ich habe so meine Probleme mit den Formularen samt Validierung. Grund war die Idee, eine Vereinsverwaltung fürs Intranet zu entwickeln. Die eigentliche Vereinsverwaltung habe ich noch nicht angefangen, aber herausgekommen sind PHP-Module und Javascript-Module, die einem die lästigen Dinge abnehmen (sollen). Alle Definitionen zu den Formularen sind in XML-Dateien abgelegt, so dass man fast nichts mehr mit PHP programmieren muss. Das Ganze habe ich als Produkt unter www.w4mspp.de abgelegt.

    Mit PHP programmiere ich erst seit einem Jahr. Von dem Adventure PHP Framework habe ich erst hier erfahren. Werde es mal ausprobieren. Ich denke, mein Ansatz kann für kleinere Anwendungen mit Formularen und einer mySql-Datenbank hilfreich sein.

    Viele Grüße
    gerresheinz


  • #2
    Hallo gerresheinz,

    der Ansatz gefällt mir. Was ich auf die Schnelle jedoch gesehen habe ist, dass das Presetting von Formularfeldern nach dem Absenden nicht umgesetzt scheint?!

    Schade finde ich, dass es den Code nur gegen Cash gibt.
    Viele Grüße,
    Dr.E.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1. Think about software design before you start to write code!
    2. Discuss and review it together with experts!
    3. Choose good tools (-> Adventure PHP Framework (APF))!
    4. Write clean and reusable software only!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Kommentar


    • #3
      Hmm SQL-Querys in den Formularbeschreibungen sind wie ich finde nicht sonderlich hübsch, das zwingt einen dann wohl auch schon fest eine Datenbankschnittstelle auf.

      Und knappe 500 € ist schon ne ganze Menge Geld nur für ne Formular-Validierungs und Generierungsengine.

      Imho denke ich das ganze hat auch nichts im Fortgeschrittenen Forum zu suchen sondern wenn dann in der Scriptbörse als Angebot oder ähnliches.
      robo47.net - Blog, Codeschnipsel und mehr
      | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

      Kommentar


      • #4
        Hallo,

        danke für die schnellen Antworten.
        Das Presetting erfolgt über Javascript. Die Werte für die Formulare aus der Datenbank werden als Javascript-Code generiert nicht mit dem HTML-Attribut value. Der Reset-Button soll die Felder leeren und nicht mit den Werten von 'value' füllen.

        Da mysql in der Regel einfach da ist und weil durch die SQL-Syntax der Zugriff auf Daten einfach ist, macht eine Datenhaltung z.b. in Dateien nur Arbeit. Übrigens den Zugriff auf die Datenbank habe ich in einer Klasse gekapselt.

        Das mit dem Cash ist für Kunden, die eine spezielle Anwendung benötigen. Eine Anwendung kann vollständig über die XML-Dateien erstellt werden. Man spart eine Menge Programmierarbeit und die Wartung wird erleichtert.

        Im Moment arbeite ich an einem Dokument 'Schrit für Schritt', in dem eine Beispielanwendung (Erfassung Tätigkeitsbericht) nur durch Erstellung von XML-Dateien entwickelt wird.

        Wenn Interesse besteht, das Prokukt mal unter die Lupe zu nehmen, bin ich gerne bereit es zu Testzwecken zur Verfügung zu stellen.

        Viele Grüße
        gerresheinz

        Kommentar


        • #5
          Irgendwie habe ich dummerweise auf erledigt geklickt.
          Soll aber nicht erledigt sein. Habe es wieder zurückgedeht.

          Kommentar


          • #6
            Habs jetzt nur überflogen.
            Aufbau der Formulardefinition
            - Das <row/> bzw. die grundlegende Abbildung als Tabelle würde mich stören. Ich würde ein HTML basiertes Layout zulassen und nötigenfalls eher im <w4mspp> ein Attribut für eine automatische Formatierung für Form-Elemente einführen.
            - ebenso würde ich in <text> etc. ein Attribut einführen, das das Element aus der Datenmenge, die via <content> erzeugt wird, adressiert (benennt). So kann ich verschiedene Eingaben mit dem selben Datum füllen oder alternative Bezeichner in der Query benutzen. Noch besser wäre es, auch Ausdrücke zuzulassen. Da wirds dann allerdings komplex:
            Bsp. (php-seitig parsebar):
            Code:
            <text name="lieferadresse">
              <if condition="isset">lieferadresse</if>
              <then>lieferadresse</then>
              <else>adresse</else>
            </text>
            Bsp. (SQL Ausdruck, könnte in das * von <content> mit eingehen):
            Code:
            <text name="name" relates="nachname">
            <text name="lieferadresse" relates="IF(lieferadresse = '',adresse,lieferadresse)" />
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Das Presetting erfolgt über Javascript. Die Werte für die Formulare aus der Datenbank werden als Javascript-Code generiert nicht mit dem HTML-Attribut value. Der Reset-Button soll die Felder leeren und nicht mit den Werten von 'value' füllen.
              Sofern es keine Fallback-Lösung für javascript=off gibt, ist das ein knockout-Kriterium.
              Viele Grüße,
              Dr.E.

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              1. Think about software design before you start to write code!
              2. Discuss and review it together with experts!
              3. Choose good tools (-> Adventure PHP Framework (APF))!
              4. Write clean and reusable software only!
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

              Kommentar


              • #8
                Hallo,

                Sofern es keine Fallback-Lösung für javascript=off gibt, ist das ein knockout-Kriterium.
                Wer javascript ablehnt, kann w4ms++ nicht nutzen (ist selber schuld).

                Das <row/> bzw. die grundlegende Abbildung als Tabelle würde mich stören. Ich würde ein HTML basiertes Layout zulassen und nötigenfalls eher im <w4mspp> ein Attribut für eine automatische Formatierung für Form-Elemente einführen.
                Danke für den Tipp. Werde mal darüber nachdenken, wie so etwas aussehen könnte. Meine Devise ist: es muss einfach sein.

                ebenso würde ich in <text> etc. ein Attribut einführen, das das Element aus der Datenmenge, die via <content> erzeugt wird, adressiert (benennt).
                Die Aufgabe übernimmt Attribut dbname="spaltenname". Man kann auch die Spaltenwerte in die Session speichern und dann mit Attribut svalue="sessionvariable" referenzierten.

                PHP Konstrukte habe ich beim <set> im Attribut exp="php-Ausdruck" implementiert. Damit kann man mit ein wenig Logik Sessionvariablen setzten, die dann mit den Attributen alltrue/onetrue.. für die Steuerung der Formularelement genutzt werden. Die Logik-Attribute und die Vergleichsattribute bringen genug Komplexität in die Formulardefinitionen. Wie gesagt, es soll einfach bleiben.

                Viele Grüße
                gerresheinz

                Kommentar


                • #9
                  (ist selber schuld).
                  Sorry, aber das ist unsachlich. Dank des Web-2.0-Hypes gibt es tatsächlich sehr viele Leute, die JS aktiviert haben, jedoch ist eine derartige Einschränkung nicht sinnvoll. Gerade dann nicht, wenn es serverseitig sehr elegant abbildbar ist. IMHO kostet dich das inkl. Testing nicht mehr als 2h und du hast ein rundes Paket.

                  Just my 2 cent!
                  Dr.E.
                  Viele Grüße,
                  Dr.E.

                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  1. Think about software design before you start to write code!
                  2. Discuss and review it together with experts!
                  3. Choose good tools (-> Adventure PHP Framework (APF))!
                  4. Write clean and reusable software only!
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                  Kommentar


                  • #10
                    Wer javascript ablehnt, kann w4ms++ nicht nutzen (ist selber schuld).
                    Meine Devise ist: es muss einfach sein.
                    Wie gesagt, es soll einfach bleiben.
                    Wenn alles ok ist so wie es ist, dann ist das nur ein Werbethread ??

                    Oder hab ich Deine Frage übersehn ?
                    Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                    Kommentar

                    Lädt...
                    X