Zum Inhalt springen

Formhandler: Submit-Problem (reloaded das Formular neu)

Erstellt am 25. Januar 2012 · Noch keine Antworten

Tags: Frage

drjones ·

Ich habe, nachdem ich keine Zeit mehr an die unberechenbaren Bugs von Powermail verschwenden will, mir mal Formhandler angesehen (1.1.0) angesehen und ein wenig getestet.
Ist scheinbar wirklich gut gelungen.

Allerdings habe ich nachdem ich ein Radio mit Validierung in das Formular eingebaut habe das Problem, dass das Formluar nicht mehr abgeschickt wird.
Nach dem Submit reloaded er einfach das Formular mit allen Werten und schreibt die Nachricht weder ins Log noch wird eine E-Mail versandt.

Auch ein Entfernen der Radios aus dem Master-Template bringt nichts. Ich weiß dummerweise nicht mehr genau, was ich geändert habe seit es vor dem Radio lief 🙁

Hat jemand eine Idee,w as ich verbockt haben könnte?
Anbei das TS und Template:

Das TS:

plugin.Tx_Formhandler.settings.predef.validation-ajax-validation {

debug = 1

	# This is the title of the predefined form shown in the dropdown box in the plugin options.
	name = Formhandler Validation with AJAX based Error Checks
	
	# All form fields are prefixed with this values (e.g. ajax-validation[name])
	formValuesPrefix = ajax-validation
	
	radioButtonFields = attention

	langFile.1 = TEXT
	langFile.1.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/lang/lang.xml

	templateFile = TEXT
	#templateFile.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/html/step-1.html
	templateFile.value = fileadmin/styles/00_bls_layout/HTML-templates/formhandler/2-ajax-validation.html

	# The master template is a file containing the markup for specific field types or other sub templates (e.g. for emails). You can use these predefined markups in your HTML template for a specific form.
	masterTemplateFile = TEXT
	masterTemplateFile.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/html/mastertemplate.html

	# If you use YAML, you don't need to include 1&2
	cssFile {
		#10 = TEXT
		#10.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/skin/css/base.css
		#20 = TEXT
		#20.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/skin/css/forms.css
		25 = TEXT
		25.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/skin/css/special.css
		30 = TEXT
		30.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/skin/css/colors.css
	}
	
	# In case an error occurred, all markers ###is_error_[fieldname]### are filled with the configured value of the setting "default".
	isErrorMarker {
		default = <img src="typo3conf/ext/formhandler/Resources/Images/notok.png" />
	}

	# These wraps define how an error message looks like. The message itself is set in the lang file.
	singleErrorTemplate {
		totalWrap = <div class="error">|</div>
		singleWrap = <span class="message">|</span>
	}
	
	# This is the class name and config of the AJAX handler responsible for inserting the right JavaScript code for the AJAX validation into the markers ###validate_[fieldname]###
	ajax {
		class = Tx_Formhandler_AjaxHandler_JQuery
		config {
		  #ajaxSubmit = 1
			notOk = <img src="typo3conf/ext/formhandler/Resources/Images/notok.png" />
			ok = <img src="typo3conf/ext/formhandler/Resources/Images/ok.png" />
			initial = ###is_error_###fieldname######
			loading = <img src="typo3conf/ext/formhandler/Resources/Images/ajax-loader.gif" />
		}
	}

	# This block defines the error checks performed when the user hits submit.
	validators {
		1.class = Validator_Default
		1.config.fieldConf {
			name.errorCheck.1 = required
			#attention.errorCheck.1 = required
			email.errorCheck.1 = required
			email.errorCheck.2 = email
			message.errorCheck.1 = required	
		}
	}				

	finishers {

		# Finisher_Mail sends emails to an admin and/or the user.
		1.class = Finisher_Mail
		1.config {
			checkBinaryCrLf = message
			admin {
				templateFile = TEXT
				templateFile.value = {$formhandlerExamples.validation.ajax-validation.rootPath}/html/email-admin.html
				sender_email = {$formhandlerExamples.validation.ajax-validation.email.admin.sender_email}
        to_email = {$formhandlerExamples.validation.ajax-validation.email.admin.to_email}
        subject = TEXT
				subject.data = LLL:{$formhandlerExamples.validation.ajax-validation.rootPath}/lang/lang.xml:email_admin_subject
			}
		}

		# Finisher_Redirect will redirect the user to another page after the form was submitted successfully.
		5.class = Finisher_Redirect
		5.config {
			redirectPage = {$formhandlerExamples.validation.ajax-validation.redirectPage}
		}
	}
}

Das HTML-Template:

<!-- ###TEMPLATE_FORM1### -->
###master_multipart-form-start_contact-form###
  ###master_section-start###
		###master_attention_ajax###
    ###master_input_ajax_firstname###
    ###master_input_ajax_lastname###
		###master_input_ajax_email###
		###master_input_ajax_phoneoptional###
		###master_textarea_ajax_message###
  ###master_section-end###
  ###master_section-start###
		###master_submit###
  ###master_section-end###
###master_form-end###
<!-- ###TEMPLATE_FORM1### -->

Und das Master:

<!-- ###master_attention_ajax### -->
###error_attention###    
<div class="type-check ajax">
	<label for="attention">###LLL:attention### ###required_attention###</label>
	<div>
		<input type="radio" id="attention-mr" name="###formValuesPrefix###[attention]" value="###LLL:attention.mr###" ###checked_attention_###LLL:attention.mr###### />
		<label for="attention-mr">###LLL:attention.mr###</label>
	</div>
	<div>
		<input type="radio" id="attention-mrs" name="###formValuesPrefix###[attention]" value="###LLL:attention.mrs###" ###checked_attention_###LLL:attention.mrs###### />
		<label for="attention-mrs">###LLL:attention.mrs###</label>
	</div>
	###validate_attention###
</div>
<!-- ###master_attention_ajax### -->