Extension Formhandler:数据库插入

时间:2015-01-05 11:31:52

标签: typo3

我使用扩展formhandler将数据插入数据库时​​遇到了问题。

这是我的html形式:

<!-- ###TEMPLATE_FORM1### begin -->
<form action="###REL_URL###" id="projektform" method="post" class="formhandler">
 <dl>
  <dt><label for="sender_name">Imię</label></dt>
  <dd>
   <input type="text" name="formhandler[sender_name]" id="sender_name"
          value="###value_sender_name###" />
  </dd>

  <dt><label for="sender_email">E-mail</label></dt>
  <dd>
   <input type="text" name="formhandler[sender_email]" id="sender_email"
          value="###value_sender_email###" />
  </dd>

  <dt><label for="message">Wiadomość</label></dt>
  <dd>
   <textarea name="formhandler[message]" id="message">###value_message###</textarea>
  </dd>
 </dl>
 <input type="submit" value="Wyślij" ###submit_nextStep### />
</form>
<!-- ###TEMPLATE_FORM1### end -->

<!-- ###TEMPLATE_SUBMITTEDOK### begin -->
<p>The following message has been sent:</p>
<p>###value_message###</p>
<!-- ###TEMPLATE_SUBMITTEDOK### end -->

<!-- ###TEMPLATE_EMAIL_ADMIN_PLAIN### begin -->
The following contact form has been sent to you:
Sender: ###value_sender_name### ###value_sender_email###
Text:
###value_message###
<!-- ###TEMPLATE_EMAIL_ADMIN_PLAIN### end -->

这是我的形式的错别字:

plugin.Tx_Formhandler.settings {   
  debug = 1    
  templateFile = fileadmin/forms/contact-form/1-contactform.html  
  formValuesPrefix = formhandler    
  finishers {     
    1 {       
      class = Tx_Formhandler_Finisher_Mail     
    }     
    2 {       
      class = Tx_Formhandler_Finisher_SubmittedOK       
      config.returns = 1     
    } 
    3.class = Tx_Formhandler_Finisher_DB  
    3.config {
      table = contact  
      fields {
        sender_name.mapping = sender_name
        sender_email.mapping = sender_email
        message.mapping = message
      }
    }
  } 
}

通过表单提交的邮件已发送但仍插入数据库无法正常工作。 知道什么可能是错的吗?

1 个答案:

答案 0 :(得分:0)

Finisher_SubmittedOK应始终用作最后一个修整器,因为它会停止执行以下修整器。 documentation也表明,这个修整器应该用作最后一个。

将TypoScript更改为以下内容,表单值将保存到您的表格中。

plugin.Tx_Formhandler.settings {   
  debug = 1    
  templateFile = fileadmin/1-contactform.html  
  formValuesPrefix = formhandler    
  finishers {     
    1 {       
      class = Tx_Formhandler_Finisher_Mail     
    }     
    2.class = Tx_Formhandler_Finisher_DB  
    2.config {
      table = contact  
      fields {
        sender_name.mapping = sender_name
      }
    }
    3 {       
      class = Tx_Formhandler_Finisher_SubmittedOK       
      config.returns = 1     
    } 
  } 
}