php.de

Zurück   php.de > php.de Intern > Wiki Diskussionsforum > Tutorials

Tutorials Hier findest Du Tutorials, welche nach und nach ein fertiges Script ergeben. Sehen, lernen & verstehen!

Thema geschlossen
 
LinkBack (7) Themen-Optionen Thema bewerten
Alt 14.12.2007, 20:06  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Großes Problem ist einfach die Vielfalt an Ansprüchen die an ein Formular gestellt werden. Weil alle Möglichkeiten kann man schwer abdecken! Vor allem bei der Validierung ist es problematisch. Ich hab es mir so gebastelt dass ich sehr einfach im Quellcode noch weitere abfragen zusätzlich programmieren kann die dann trotzdem die Klasse übernimmt. So bekomme ich keine riesen Klasse die für jede Möglichkeit eine eigene Routine darstellt. Inetwa so.

PHP-Code:
<?php
$form
->date('start''2007-01-01');
$form->date('ende''2007-01-02');
if (
$form->submitted AND strtotime($form->get('start') >= strtotime($form->get('ende')) {
    
$form->add_error('ende''Das Enddatum muss vor dem Startdatum liegen!');
}
?>
Solche Fehler sind schwer allgemein abzufangen. Aber irgendwie hätte ich es trotzdem gern in einer Klasse :/

Ne andere Frage auf die ich noch keine elegante Lösung gefunden habe:
Bis jetzt halte ich es so dass ich Sprache möglichst komplett im Template halte. Dann müsste zwar für jede Sprache ein eigenes Template erstellt werden aber dafür habe ich keine riesige Datei in der die ganzen Strings gespeichert werden. Da ich sehr viel verschiedene Texte auf der Seite habe ist das sehr angenehm.

Das Problem bei dem Formular sind eben Labels, Beschreibung und vor allem Fehlernachrichten. Bis jetzt muss ich diese in einer eigenen Datei als String zu verfügung halten. Das gefällt mir aber nicht wirklich :/ Das ist schrecklich da jedes mal einen neuen Wert anzulegen.
Flor1an ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.12.2007, 20:28  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Solche "unnormalen" Überprüfungen hat doch eigentlich fast jedes Formular. Ich hab dafür meine Conditionals, die über den Controller Zugriff auf andere Elemente haben.

Bei mir würde das also in etwa so aussehen:

PHP-Code:
<?php
$form
->add("start")->filterDate();
$form->add("ende")->filterDate()->checkGreaterAs("start");
?>
Dafür würde dann etwa folgendes Konstrukt benötigt:
PHP-Code:
<?php
class Form_Conditional_GreaterAs extends Form_Conditional
{
  protected 
$_name null;
  public function 
isConsistent()
  {
    return 
$this->_value $this->getController()->getElement($this->_name)->getValue();
  }
  public function 
setGreaterAs($name)
  {
    
$this->_name $name;
  }
}
?>
Ist also schon alles möglich.


Zum Thema Sprache: Das liefert das Model im MVC-Pattern, zumindest bei mir. Sonst hätte das ja außer ein paar mickrigen Daten liefern fast nichts zu tun
Zergling-new ist offline  
Alt 15.12.2007, 17:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Das Prinzip ist schon nicht schlecht. Ich bin mit meinem Array-initialisierten Formmanager immer wieder an Grenzen gestoßen, z.B. bei Feldabhängigkeiten bei Ajax- oder Reload-Geschichten. Vielleicht setz ich mich nach Weihnachten mal ran.
Was mir allerdings immer noch Kopfzerbrechen macht ist die Problematik MVC-Pattern vs. Templating (an anderer Stelle bereits diskutiert), welche bei Formmanagement besonders zum Tragen kommt. Im Prinzip finde ich nämlich Templates mit Basiseingabefeldern schon ganz praktisch. Die lassen sich optisch gut via CSS anpassen, auch mal speziell anordnen etc.

Sofort treten dann aber die ersten Probleme auf:
- Jedes Element muß über eine ID identifiziert werden, um es dann über Formmanager zu initialisieren / überschreiben zu lassen
- relevante Input / Select Eigenschaften (maxlength / multiple) direkt angeben und dann parsen oder über den Formmanager angeben
- Platzhalter für Checkboxfelder: Einzelelemente = umständlich zu parsen, Gruppenelement = wieder nicht individuell darzustellen
usw. usf.

Wenn ich Deine (Zergling) Lösung richtig interpretiere, werden die Felder bisher nur nacheinander über ein Eingabeart-bezogenes Template ausgegeben, oder? Das macht die Lösung für mich noch nicht flexibel genug (bezüglich der Anordnung der resultierenden html Anordnung). Bestimmte Abhängigkeiten (z.B. nach Button Neuladen /via Ajax Wert holen und ihn in Feld soundso eintragen) ließen sich sicher über dein Aktionsset angeben.

Muß da mal tiefer eintauchen.
nikosch ist offline  
Alt 06.02.2009, 23:06  
Neuer Benutzer
 
Registriert seit: 21.09.2007
Beiträge: 1
TriloByte
Standard

Ich finde deinen Ansatz sehr interessant, vor allem der Teil mit den Constraints (das fehlt bei meiner Implementierung noch völlig) aber leider auch an einigen Stellen zu unflexibel.
Das Problem, das ich an deinem Ansatz sehe, ist zum Einen die schon erwähnte Unflexibilität in der Ausgabe des Formulars und die nicht zentrale Definition von Fehlermeldungen. Generische Errors zu schreiben wird also nicht direkt unterstützt. Überhaupt ist Sprache im Code unschön, aber das lässt sich natürlich auslagern. Das call-chaining finde ich ehrlich gesagt furchtbar. Es erschwert die Lesbarkeit des Codes. Wie soll das erst aussehen, wenn ein Feld mehrere Bedingungen erfüllen muss?

Ich habe mich vor einiger Zeit ebenfalls mit dem Thema Formularvalidierung auseinandergesetzt und eine kleine Bibliothek geschrieben. Momentan ist sie eine Smarty Erweiterung, die Kopplung ist aber sehr lose und deshalb auch ohne Smarty sehr schnell verwendbar. Eine Beschreibung (englisch) und Beispiele gibt es hier:

Another Formvalidator

Vielleicht für den ein oder anderen eine nützliche Anregung. Auch mein Ansatz hat natürlich Schwächen, die ich noch angehen muss: Kopplung an die Session und Kopplung an ein error-file. Beide Kopplungen sind aber ebenfalls lose und werden bald entfernt.
Ein Constraintsystem werde ich nachdem ich das hier gelesen habe noch nachrüsten. Wirklich nötige und nützliche Sache.

Gruß!
TriloByte ist offline  
Alt 16.01.2010, 19:21  
Benutzer
 
Registriert seit: 15.01.2004
Beiträge: 68
Dave Waterstone
Dave Waterstone eine Nachricht über ICQ schicken Dave Waterstone eine Nachricht über Yahoo! schicken
Standard Klasse

Wo ist die Klasse denn hin? Links laufen nicht
__________________
.::Wenn das Rauskommt, wo ich überall reinkomme, komme ich da Rein, wo ich so schnell nicht mehr Rauskomme::.
.:ie drei natürlichen Feinde des WebWorkers: Frischluft, Sonnenschein und das unerträgliche Gebrüll der Vögel.::
Dave Waterstone ist offline  
Alt 16.01.2010, 19:47  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Schonmal aufs Datum des letzten Beitrages geschaut?

Themenmoderation:
[Ω] Thema geschlossen
Flor1an ist offline  
Alt 06.07.2010, 03:14  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Als Anmerkung: Zend_Form macht eigentlich genau das, was hier beschrieben wird.

PS: die Verlinkung ist seit der phpfriend.de Migration wohl zerstoert, da hat wohl jemand mit Suchen/Ersetzen auch die Links hier getroffen
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Thema geschlossen


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/tutorials/45163-php-formular-generator.html
Erstellt von For Type Datum
Metacrawler - Die Metasuchmaschine. This thread Refback 30.03.2011 19:15
Suche PHP Formular mit leich erweiterbaren Feldern - PSD-Tutorials.de This thread Refback 19.01.2011 13:56
www.webmail.de - Ihr kostenloser und vielseitiger Mailanbieter This thread Refback 25.10.2010 19:53
Formulare mit Ausgabewert auf Homepage erstellen - Forum - CHIP Online This thread Refback 16.05.2010 19:34
Metacrawler - Die Metasuchmaschine. This thread Refback 01.02.2010 19:05
Suche PHP Formular mit leich erweiterbaren Feldern - PSD-Tutorials.de - Forum This thread Refback 11.04.2009 18:32
Suche: PHP Formular Validierungs Bibliothek - FoN.phoenix This thread Refback 19.02.2009 18:30

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular - Generator - dh1sbg Trash 1 01.06.2008 11:56
Smiley Generator Jay0815 PHP Tipps 2008 3 28.12.2007 16:22
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
Datenbank auslesen, in Formular darstellen und �ndern PHP Tipps 2006 8 22.02.2006 17:51
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
leeres Formular PHP Tipps 2005-2 15 05.10.2005 16:49
[Erledigt] Formular testen .... HTML, Usability und Barrierefreiheit 7 19.09.2005 14:03
[Erledigt] PHP Formular ~~wichtig~~ PHP Tipps 2005 27 29.05.2005 19:38
Formular --> Ergebnis auf anderer Seite anzeigen Jojo1 PHP Tipps 2005 58 01.02.2005 17:13
[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
Formular nach UPDATE anzeigen PHP Tipps 2004-2 5 22.12.2004 02:06
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
[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
forenregeln generator, bestellformular generator, php formular generator, php generator, http://www.php.de/tutorials/45163-php-formular-generator-2.html, php form generator, formular generator php, datenbank formular generator, mail formular generator, mailformular generator, forumregeln generator, php seiten generator, formulargenerator php, php formulare, formulargenerator datenbank, php formular bibliothek, php mail formular generator, 2 form auf einer seite php, formular php generator, php form builder class

Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.