| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Betreibst du irgendeine Art von tests ? Oder schreibst du den Code einfach so runter ohne irgendwie zu testen ? Gerade bei größeren Komponenten ist das sinnvoll! PHP-Code: und md5(get_class( ... )); damit würdest du wenn das ernst gemeint ist deiner Form genau 1 Element jeder Klasse hinzufügen können, keine 2 Text-Felder oder was auch immer. Bevor du hier so eine riesen Klasse oder sogar mehrere postest, schreib doch einfach mal ein paar tests ob sie das macht was sie soll ? -> phpunit oder auch simpletest wären da vielleicht nützlich.
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 06.09.2008
Beiträge: 189
![]() | Hallo! Danke für deine Hilfe. Es erscheint nun auch das erste Formularfeld. Natürlich versuche ich die Klassen zu testen jedoch weiß ich nicht, wie ich solche Klassen anders testen sollte als kleine Beispiel-Aufrufe zu schreiben. Werde mir mal PHPUnit ansehen. Leider bleibt mein altes problem, dass die fehlermeldungen bereits ausgegeben werden, obwohl ich das Formular noch garnicht abgesendet habe. Wie kann ich das geschickt verhindern? Des weiteren wird die Fehlermeldung, dass die Eingabe zu kurz ist 3 mal für jedes Feld angezeigt. Woran kann das liegen? Zudem erhalte ich für PHP-Code: Code: Warning: ereg() [function.ereg]: REG_EMPTY in /home/www/web274/html/admin/classes/Validator_Alnum.php on line 31 MfG, Andy
__________________ I'm so tired of slitting the throats of people calling me a violent psychopath. |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 06.09.2008
Beiträge: 189
![]() | Danke für deine Antwort. Hat mir bei der Lösung des Problems sehr geholfen. Dieser Fehler ist also behoben. Mich würde nun aber noch interessieren, wie ich eine Unterscheidung in optionale und Pflichtfelder hinbekomme. Das muss ja über einen optionalen Parameter binding lösbar sein. Würde es reichen, die abstrakte Klasse um eine Methode zu erweitern, die überprüft ob eine Eingabe gemacht wurde oder nicht und dann wenn dies nicht der Fall ist und binding auf false gesetzt ist einfach immer true für isValid() zurückgebe? So könnte ich auch verhindern, dass für solche Felder, wenn sie leer sind Fehler ausgegeben würden. Zudem kann ich dann eine Zusätzliche Fehlermeldung ausgeben, wenn ein Pflichtfeld nicht ausgefüllt wurde. Habe ich etwas übersehen? Sitze nun noch an einer geeigneten Lösung um Formatierungen für das Formular festlegen zu können. Eine Methode addAttr(), die Attribute für das <form>-Tag festlegt ist sicher hilfreich jedoch könnte es ja sein, dass vor einem Formularfeld eine Beschreibung stehen soll, oder dass das Formular in eine Tabelle gepackt wreden soll. Wie kann ich das ermöglichen? Kurz, wie schaffe ich es, dass das Formular zum Beispiel wie hier anpassbar ist? MfG, Andy
__________________ I'm so tired of slitting the throats of people calling me a violent psychopath. Geändert von #Avedo (04.01.2009 um 05:05 Uhr). |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 28.09.2008
Beiträge: 1.127
PHP-Kenntnisse: Fortgeschritten ![]() | ich hab mir auch eine Validierungsklasse geschrieben. Allerdings eine reine Validierung und kein Mischmasch von Formularerzeugung und Vailiderung. So hab ich die maximale Freiheit bei der Darstellung des Formulars (die Dinge die Du angesprochen hast: Tabellenlayout, Beschreibungstexte etc.) Pflichtfelder erkennt die klasse anhand der Namen der input-Felder (vorangestelltes "r_"). Die Methode displayErrors() liefert einen String mit den Fehlern zurück. Zusätzlich gibt es die Methoden getJSErrors() um JS-Alerts anzuzeigen und getCSSErrors(), mit der dynamisch CSS erzeugt wird, damit die unausgefüllten Pflichtfelder rot umrandet werden. Wenn Du willst such ich Dir die Klasse raus und poste sie hier. ereg ist übrigens veraltet ... |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 06.09.2008
Beiträge: 189
![]() | HAst du dir die Posts im Thread mal durchgelesen? Es gibt keinen Mischmasch von Formularausgabe und Validierung. Wir reden hier nicht von einer Klasse, sondern von über 20 Klassen. Eine Klasse Form, eine Form_Element, eine Klasse für jedes Formular-Element(Text, Hidden, etc.), eine Klasse Validator und eine Klasse für jeden spezifischen Validator. Flexibler kann es nicht gehen. Die Validatoren sind so auch in anderen Klassen einsetzbar. Zum Beispiel bei der Validierung von per URL übergebenen Parametern oder der Verarbeitung von Stream-Daten. Eine Klasse wäre viel zu statisch. Das habe ich nun auch begriffen. Habe ja am Anfang dieses Threads es auch in einer Klasse gelöst. MfG, Andy
__________________ I'm so tired of slitting the throats of people calling me a violent psychopath. |
| | |
| | ||||
| Erfahrener Benutzer Registriert seit: 28.09.2008
Beiträge: 1.127
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Dann versteh ich aber das hier nicht: Zitat:
Zitat:
Wenn Du alle Eventualitäten abdecken willst bei der Gestaltung von Formularen, dann hast Du gigantisch viel zu Programmieren. Und zu der Sache mit den Pflichtfeldern hatt ich ja geschrieben wie Du es machen kannst. Geändert von Koala (04.01.2009 um 14:11 Uhr). | |||
| | |
| | |
| Neuer Benutzer Registriert seit: 27.12.2008
Beiträge: 23
![]() | Eine Möglichkeit wäre es, Fieldset-Objekte zwischen das Formularobjekt und die Eingabefelder zu schieben. Dann musst du allerdings vermutlich die Kommunikation zwischen Formular und Eingabefeldern anpassen. Ausserdem würde ich mir noch eine Möglichkeit lassen, mehrere Eingabefelder als Gruppe vorzuverarbeiten, so dass nur noch ein Wert zurückkommt. Beispiele hierfür wären eine Datumseingabe mittels 3 Select-Listen (Tag/Monat/Jahr) oder eine Auswahlliste mit einem "andere"-Textfeld. Die könntest du auch als Klassen definieren, die ihrerseits Eingabefelder enthalten und deren Werte zu einem oder mehreren eigenen Rückgabewerten verrechnen. Die Hierarchie wäre dann etwa folgende: Formular ---> Fieldset ---> Gruppe ---> Eingabefelder Validiert wird dann 3 mal, nämlich zuerst auf der Eingabefelder-Stufe, dann wird der Rückgabewert der Gruppe berechnet und validiert und zu guter Letzt können auf Formularebene noch Beziehungen zwischen den Werten gecheckt werden. Nicht dass ich das schonmal so gemacht hätte, aber ich plane ja auch gerade eine Formularklasse und ich hab halt manchmal etwas zuviel Fantasie. Was den View angeht: das finde ich auch ziemlich schwierig, das wirklich zu trennen. Die Verarbeitung der Formularwerte gehört ganz klar nicht zum View, auch die definition der geforderten Eingabefelder nicht. Die Darstellung ist jedoch ziemlich stark von der Definition abhängig. Aber das Formular im View zu definieren... da hab ich irgendwie das Gefühl, dass es bessere Lösungen geben muss. |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 28.09.2008
Beiträge: 1.127
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Zitat:
Deine fieldset-Objekte machen sich in einem Tabellenlayout z.B. nicht gut. | ||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP: Formular Generator | Zergling-new | Tutorials | 16 | 06.07.2010 03:14 |
| Ergebnis von Formular in iFrame zeigen | PsychoEagle | HTML, Usability und Barrierefreiheit | 2 | 22.07.2009 21:07 |
| Problem mit Formular, Daten an datenbank senden | Aurec | PHP Tipps 2008 | 11 | 20.11.2008 18:17 |
| Formular Pflichtfelder für Frontpage Formular erstellen | Caruso | JavaScript, Ajax und mehr | 5 | 21.06.2008 09:17 |
| Wert aus Textfeld in neues Formular übernehmen (kein Submit) | PsychoEagle | HTML, Usability und Barrierefreiheit | 9 | 02.01.2007 14:51 |
| formular includen | samspa5 | PHP Tipps 2006 | 13 | 18.03.2006 11:37 |
| [Erledigt] Formular in Formular | HTML, Usability und Barrierefreiheit | 4 | 19.10.2005 12:18 | |
| [Erledigt] PHP Formular ~~wichtig~~ | PHP Tipps 2005 | 27 | 29.05.2005 19:38 | |
| [Erledigt] Im Formular user abfragen? | Datenbanken | 3 | 06.01.2005 10:51 | |
| [Erledigt] PHP Formular - Daten an nächsten Schritt weiter geben - Wie? | PHP Tipps 2005 | 14 | 02.01.2005 20:05 | |
| [Erledigt] Daten in einem Formular ausgeben und ändern | PHP Tipps 2004-2 | 7 | 07.12.2004 17:22 | |
| Wie implementiere ich mein Email Formular? | PHP Tipps 2004-2 | 2 | 14.11.2004 17:02 | |
| Brauche PHP Formular | Beitragsarchiv | 9 | 16.08.2004 16:23 | |
| [Erledigt] Formular mit Daten werden auf anderer Seite zusammengefasst | PHP Tipps 2004 | 4 | 15.08.2004 15:44 | |
| [Erledigt] Daten in neuem Formular anzeigen | PHP Tipps 2004 | 6 | 21.07.2004 10:44 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php validierung pflichtfelder, formular zend validator mit nur 4 werten festlegen, formularfeld bei fehler umranden, form validierung php, http://www.php.de/software-design/50128-formular-validierung-4.html, formular php fehler rot umranden, file-input validiert nicht eznd, html input validierung, zend forms abhängige pflichtfelder, klasse zur formulardatenvalidierung, zend filter input abhängige felder, formulareingaben überprüfen rot umranden php, formular rot umranden php, zend validierung abhängiger felder, validierung formulare, zend validate abhängige parameter, zend geterrors ausgeben, framework pflichtfelder warnung php, validierung 3 mal testen, php formular validierung dynamisches css |