Zum Inhalt springen

Formhandler validation gibt IMMER falsch-positiv Meldungen

Erstellt am 26. Juni 2015 · 3 Antworten · letzte Antwort am 27. Juni 2015

Tags: Formhandler, Frage

ejoo ·

Hallo,
ich versuche mich gerade am formhandler, und das Symptom ist wiirklich seltsam. Ich befolge das Tutorial
http://www.netresearch.de/blog/typo3-formhandler/
und schon bei der Validierung läuft nichts mehr, da IMMER Fehler gemeldet werden, es scheint so, als würden die Werte aus dem Formular nicht übergeben werden, Fehlermeldungen bleiben aber ansonsten aus.
Das setup für das Formular:

config.admPanel=1

plugin.Tx_Formhandler.settings {
  debug = 1

  templateFile = fileadmin/templates/forms/fromscratch/html/step-1.html
  langFile = fileadmin/templates/forms/fromscratch/lang/lang.xml
  formValuesPrefix = osk

  finishers {
    1 {
      class = Tx_Formhandler_Finisher_Mail
    }
    2 {
      class = Tx_Formhandler_Finisher_SubmittedOK
      config.returns = 1
    }
  }
  validators.1.class = Validator_Default
  validators.1.disabled = 0
  validators.1.config.fieldConf {
    message.errorCheck.1 = required
    message.errorCheck.2 = minLength
    message.errorCheck.2.value = 5

    sender_name.errorCheck.1 = required

    sender_email.errorCheck.1 = required
    sender_email.errorCheck.2 = email
  }
  addErrorAnchors = 1
  singleErrorTemplate {
    totalWrap = |
    singleWrap = <span style="color: red;">|</span>
  }
  errorListTemplate {
    totalWrap = <div style="color: red;">Es sind folgende Fehler aufgetreten: <ul>|</ul></div>
    singleWrap = <li>|</li>
  }
}

Die zugehörige template-Datei step-1.html:

<!-- ###TEMPLATE_FORM1### begin -->
<p>Wenn es ein Problem gibt, einfach schreiben:</p>
<form action="###REL_URL###" id="projektform" method="post" class="formhandler">
 <dl>
  <dt><label for="message">Problembeschreibung</label></dt>
  <dd>
   <textarea name="formhandler[message]" id="message">###value_message###</textarea>
  </dd>

  <dt><label for="sender_name">Ihr Name</label></dt>
  <dd>
   <input type="text" name="formhandler[sender_name]" id="sender_name"
          value="###value_sender_name###" />
  </dd>

  <dt><label for="sender_email">Ihre E-Mailadresse</label></dt>
  <dd>
   <input type="text" name="formhandler[sender_email]" id="sender_email"
          value="###value_sender_email###" />
  </dd>
 </dl>
 ###ERROR###
 <input type="submit" value="Absenden" ###submit_nextStep### />
</form>
<!-- ###TEMPLATE_FORM1### end -->

<!-- ###TEMPLATE_SUBMITTEDOK### begin -->
<p>Die Anfrage mit folgendem Text wurde gesendet:</p>
<p>###value_message###</p>
<!-- ###TEMPLATE_SUBMITTEDOK### end -->

<!-- ###TEMPLATE_EMAIL_ADMIN_PLAIN### begin -->
Das Kontakformular wurde an Sie geschickt:
Absender: ###value_sender_name### ###value_sender_email###
Text:
###value_message###
<!-- ###TEMPLATE_EMAIL_ADMIN_PLAIN### end -->

Typo3 ist Version 6.2.12, formhandler ist 2.0.1.

Hüüülfe! 😉
Dirk

ejoo ·

Ok, ich habs raus: formValuesPrefix muss formhandler sein. Ich verstehe noch nicht, in welchem Fall er anders lauten darf, aber das wars bei mir, die Werte kamen wie vermutet gar nicht an.

ejoo ·

Nochmal für die Nachwelt 😉
man kann den Wert für formValuesPrefix schon setzen, dann müssen in den Inputs etc. im Formular die name-Einträge im Format

name="wert_des_prefix[name_des_feldes]"

definiert werden, sonst klappt es nicht. Also das sinnigste ist dann, die Werte so im Mastertemplate (wer damit hantiert) zu definieren:

name="###formValuesPrefix###[###fieldname###]"
jenses ·
ejoo schrieb

Also das sinnigste ist dann, die Werte so im Mastertemplate (wer damit hantiert) zu definieren:

name="###formValuesPrefix###[###fieldname###]"

Das Sinnigste ist es,
sich nicht auf eventuell veraltete Blogeinträge zu verlassen,
sondern Manual oder Onlinedokumentation des Extensionprogrammierers zu befolgen.
Auf typo3-formhandler.com gibt es u.a. einen Haufen Beispieltemplates -
alle davon enthalten standardmäßig ###formValuesPrefix###[###fieldname###].

Das hier geschilderte "Problem" wäre bei Nutzung eines dieser Templates nicht-existent gewesen 😉