2015-01-05 37 views
0

我有使用擴展formhandler插入數據到數據庫的問題。擴展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 --> 

這是我對形式的TypoScript:通過表單提交

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 
     } 
    } 
    } 
} 

郵件被髮送,但仍然插入到數據庫無法正常工作。 任何想法可能是錯誤的?

+0

您確定表名是否正確?一個TYPO3表需要以tx_爲前綴以便工作。 – lorenz

+0

您不必爲表格使用前綴tx_。它也適用於沒有tx_前綴的表名(例如tt_content,fe_users或用戶defnied表) – derhansen

回答

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  
    } 
    } 
} 
+0

它看起來像我只是錯過了與Finisher_SubmittedOK它現在的作品部分。非常感謝你的幫助 :) – DaChoj