2015-01-05 3 views
0

У меня возникла проблема с вложением данных в базу данных с помощью расширителя формы.Удлинитель формы: вставка базы данных

Это мой 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 
     } 
    } 
    } 
} 

Mails, представленный через форму посылается, но все вставки в базу данных не работает , Любая идея, что может быть неправильным?

+0

Вы уверены, что имя таблицы в порядке? Для работы таблицы TYPO3 необходимо префикс tx_. – lorenz

+0

Вы не можете использовать префикс tx_ для таблиц. Он также отлично работает с именем таблицы без префикса tx_ (например, tt_content, fe_users или пользовательской таблицы) – 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

Смежные вопросы