Schrift
[thread]12814[/thread]

Catalyst MVC mit FormFu

Leser: 1


<< >> 8 Einträge, 1 Seite
pearl-man
 2008-11-25 11:46
#116584 #116584
User since
2005-07-25
65 Artikel
BenutzerIn
[default_avatar]
Hi,

ich entwerfe mom ein Web-App mit dem Catalyst MVC Framework, unter anderem benutze ich hierfür FormFu um Formulare automatisch (anhand einer config-datei) erstelllen und dann auch gleich filtern bzw. auf gültigkeit testen zu lassen. Jetzt steh ich jedoch vor dem Problem, dass ich eine umfangreichere Form erstellen muss, welche untern aderem 2 Radio-Buttons enthält. Je nachdem, welcher Radio-button angeklickt wird, wird die Form um Form-elemente erweitert. Die Divs in denen die, von den radio-buttons abhängigen, Formelemente stecken, sind von vornherrein in der seite integriert, doch bis zum klicken auf die radio-buttons versteckt.
Nun das eig problem, ich verwende für jedes der felder <constraints> wie z.B. "Required" oder <filter> wie "HTMLScribber" und weitere Validierungs- und Filtermechanismen, die FormFu von haus aus unterstützt. Wird jetzt die variable Form a, aufgrund der radio-wahl, angezeigt und korrekt ausgefüllt, bleibt form b, welche weiterhin versteckt is, unausgefüllt, die validierungen jedoch will FormFu trotzdem für diese Form-elemente druchführen und somit akzeptiert FormFu die abgeschickte Form nicht als submitted_and_valid().

Wie kann ich also Teile der form abhängig von der wahl zweier radio-buttons aus der Validierungsprozedur von FormFu ausschließen bzw. diese einfach aus der Form löschen?
Bedingung ist, dass ich weiter die von formfu verwendeten config-files verwenden kann und ich auf jedes feld filter, constraint, inflators, ... anwenden kann.
anders würde ich beim abschicken der form einfach $form->submitted() abfragen, müsste dann jedoch jedes request-parameter einzeln auswerten auf gültigkeit und allgemein vorhandensein.

Hoffe, mir kann jemand n hilfreichen Tipp geben :) danke schonmal

hier noch schnell n link zu formfu: http://search.cpan.org/~cfranks/HTML-FormFu-0.0300...
GwenDragon
 2008-11-25 12:36
#116587 #116587
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Bitte kein Neuladen der erstellten Threadseite mit F5 oder Reload-Button. Dadurch werden immer wieder neue Threasds erzeugt.
skirnir
 2008-11-27 10:47
#116650 #116650
User since
2006-05-09
29 Artikel
BenutzerIn
[default_avatar]
Nach dem Prinzip: Constrain one form field based on the value of another
kannst du die Constraints davon abhängig machen, welcher Radiobutton angeklickt wurde.
Gast Gast
 2008-11-27 15:16
#116664 #116664
k, danke für die antwort, genau das habe ich gesucht... doch jetzt hab ich noch probleme das ganze in apache-style config zu formulieren:

Code: (dl )
1
2
3
4
5
6
7
8
...
</elements>
constraint Required
when
field extern
value 1
</elements>
...


???


(p.s. das mit dem doppelpost war keine absicht, sry)
skirnir
 2008-11-28 10:37
#116678 #116678
User since
2006-05-09
29 Artikel
BenutzerIn
[default_avatar]
Ich habe das bisher nur in YAML konfiguriert, aber du wirst die Infos so verschachteln müssen, dass die Zuordnung zu einem Feld eindeutig ist. Alles was bei deinem Snippet in <elements>..</elements> steht (übrigens muss vermutlich das erste "/" weg) liegt auf einer Hierarchieebene.
Gast Gast
 2008-11-28 12:46
#116681 #116681
okay, habs dann doch noch rausgefunden:

Code: (dl )
1
2
3
4
5
6
7
<constraint>
type Required
<when>
field extern
values 1
</when>
</constraint>


:) danke trotzdem
Gast Gast
 2008-11-28 13:23
#116683 #116683
sry, muss mich verbessern, die oben gepostete variante der when-condition im constraint Required funktioniert doch nicht richtig... jemand ne ahnung, was falsch sein könnte, bisher war diese variante, die einzige, die der config-loader bzw. formfu parsen konnte
Gast Gast
 2008-11-28 20:52
#116695 #116695
hab über die mailinglinste von FormFu rausbekommen, dass die "when()" bedingung nur für nicht-gekapselte elemente funktioniert. Da meine elemete mehr als einmal verschachtelt sind (in divs) hilft when() nur wenig weiter, jemand ne idee, wie man gleiches erreichen kann, ohne jedes param manuell zu validieren und mit der möglichkeit einzelne elemente zu kapseln?

frag mich auch, wie man ohne den großzügigen einsatz von kapseln, also verwendung von type Block wie div ein einigermaßen akzeptables design hinkriegen soll mit formfu???
<< >> 8 Einträge, 1 Seite



View all threads created 2008-11-25 11:46.