[TYPO3-german] Formhandler - 2 step form ajax Valdierung & submit/next geht nur in step 1

Reinhard Führicht fuehricht at gmx.at
Wed Jan 30 11:15:00 CET 2013


Hallo Matthias,

entschuldige die späte Antwort.

Das Problem mit jsPosition sollte sich schnell lösen lassen. Die Option 
wird im Code an der falschen Stelle verarbeitet.

Ich lege mir mal ein Testformular an und versuche das zu reproduzieren.

Ich habe mir hier ein Ticket angelegt, in dem ich meine Erkenntnisse 
posten werde: http://forge.typo3.org/issues/44959

Viele Grüße,
Reinhard

Am 25.01.2013 20:43, schrieb Matthias Eberlein:
> Hallo Reinhard,
> erst einmal Vielen Dank für Deine Mühe und Antwort auf mein
> Anliegen(problem).
>
> Nun ich habe jetzt erst einmal auf die neuste svn Revision von Heute
> einen Update gemacht und wie du beschrieben den Eintrag im Bugtracker
> 44387 angeschaut und diesen patch angewandt.
> Jedoch tut sich keine Änderung am Problem. Ich habe für die 2 Steps
> jeweils separate ID's vergeben und zwar so:
>
>     1.formID = online-booking-form-step1
>
>     2.formID = online-booking-form-step2
>
> Und das im Globalen Setup bereich.
> HTML Template Form
>
> ###master_multipart-form-start_online-booking-form-step1###
> ###master_multipart-form-start_online-booking-form-step2###
>
> AjaxSubmit habe ich mal auf 0 gesetzt. Nun nach clear chache kann ich
> folgendes im source sehen. Trotzt jsPosition = footer wird das Jquery
> script in den header geschrieben. Da all meine scripts incl. Jquery im
> footer sitzen kann natürlich kein ajax validieren. Wenn ich nun das form
> ausfülle (zum test habe ich in jedem step nur ein feld) step-1 schau in
> source Jquery für step-1 ist vorhanden. -> next step-2 schaue in source
> = jQuery für beide steps vorhanden. Also funktioniert es wie Du schon
> sagtest. Nur bei mir nicht, da meine jQuery halt im footer sitzt. Gut,
> Aktiviere ich nun ajaxSubmit = 1 und schau in den Source sitzt das
> jQuery Validierungs Script wieder schön unten im footer bereich wo ich
> es gerne hätte.
>
> Also Schlussvolgerung ist nun, dass wenn  KEIN AjaxSubmit
>          ajaxSubmit = 0
>          jsPosition = footer
>
>
> dann greift auch nicht jsPosition = footer Nicht.
>
> Mit AjaxSubmit
>
>          ajaxSubmit = 1
>          jsPosition = footer
>
> greift die jsPosition = footer funktion und der 1. Step wird mit ajax
> Validiert -> go to next Step geht auch ohne page reload also auch ajax.
> Nur vom 2. Step fehlt die Validierungs Jquery.
>
> Ein Versuch für jeden Step die Ajax einzubinden scheitert mit kein ajax
> im source.
>
> 1.ajax { }
> 2.ajax { }
>
> Wird zwar zu jeden Step zugewiesen (TYPOscript Object Browser) aber im
> FE nicht ausgegeben.
>
> So nun stehe ich auf dem schlauch... Denn wenn ich das so als Multistep
> form Verwenden möchte muss ajax submit & Validieren funktionieren.
> Ansonsten bleibt mir dann nichts anderes übrig erst einmal nur 1-steps
> forms zu verwenden und das halt für 3 versionen in 3 x jQuery Tabs zum
> auswählen.
>
> Gruß
> Matthias
>
>
>
>
>
> Am 25.01.2013 08:03, schrieb Reinhard Führicht:
>> Hallo Matthias,
>>
>> es ist möglich Multistep-Formulare per AJAX zu validieren.
>> Ich habe das gerade getestet und es funktioniert wunderbar.
>>
>> Es gibt ein Problem mit ajaxSubmit i nder aktuellen Version im TER. Hier
>> der Eintrag im Bugtracker: http://forge.typo3.org/issues/44387
>>
>> Ohne ajaxSubmit funktioniert es aber auf jeden Fall. Möglicherweise
>> liegt es an einer fehlenden formID im zweiten Step?
>>
>> Viele Grüße,
>> Reinhard
>>
>> Am 24.01.2013 19:24, schrieb Matthias Eberlein:
>>> Hallo Liste,
>>> ich habe mich einmal an der Ext. formhandler herangewagt und versuche
>>> ein 2 Step Formular zusammen zustellen. Das ganze Form funktioniert auch
>>> wenn man keine Ajax Validierung verwendet. Sobald ich auf ajax umstelle
>>> wir nur der erste step min ajax validiert, der 2. bekommt keine ajax
>>> validierung. Ein blick im Quellcode, dort fällt auf das nur für den
>>> ersten step die jQuery Validierung im Quellcode vorhanden ist nich für
>>> den 2. step. Somit kommt auch keine akax validierung für step 2
>>> zustande.
>>>
>>> Die ajax aktivierung  und die finishers habe ich sozusagen global im ts
>>> und die preProcessors, validators der 2 steps jeweils separat in
>>> 1 {} 2 {}. Habe mir erlaubt einmal die grobe script strucktur hier zu
>>> posten. Kann mir jemand sagen wo der fehler dabei ligt oder ist es nicht
>>> möglich multistep forms mit ajax zu validieren und zu submit?
>>>
>>> Für einen Tipp wäre ich euch sehr Dankbar
>>> Gruß
>>> Matthias Eberlein
>>>
>>> ps. wenn ich die ajax aktievierung in die einzelenen steps mit aufnehme
>>> und nicht global wird ajax nicht aktiviert.
>>>
>>> plugin.Tx_Formhandler.settings.predef.multiform {
>>>
>>> name =
>>> formID =
>>> formValuesPrefix =
>>>
>>> langFile.1
>>> langFile.1.value
>>>
>>> 1.templateFile
>>> 1.templateFile.value
>>> 2.templateFile
>>> 2.templateFile.value
>>>
>>> masterTemplateFile
>>> masterTemplateFile.value
>>>
>>> isErrorMarker {
>>> }
>>> singleErrorTemplate {
>>> }
>>>
>>> finishers {
>>> }
>>>
>>>    ajax {
>>>      class = AjaxHandler_JQuery
>>>      config {
>>>          ajaxSubmit = 1
>>>          jsPosition = footer
>>>      notOk =
>>>      ok =
>>>      loading =
>>>      autoDisableSubmitButton =
>>> 1 {
>>>   markers {
>>> ...
>>> }
>>>
>>> preProcessors {
>>> ...
>>> }
>>> validators {
>>> ...
>>> }
>>> }
>>>
>>>
>>> 2 {
>>> preProcessors {
>>> ...
>>> }
>>> validators {
>>> ...
>>> }
>>>
>>> }
>>> }
>>
>>
>


-- 
--------------------------------
http://www.typo3-formhandler.com
--------------------------------


More information about the TYPO3-german mailing list