PDA

Просмотр полной версии : Mailform через TS


Tod
04.03.2008, 20:00
Создаю форму на странице:

lib.order_form < tt_content.mailform.20
lib.order_form {
stdWrap.wrap = <table width="70%" border="0" cellspacing="0" cellpadding="5"><tr><td colspan="2"><h1>Быстрое оформление заказа</h1><i>Поля отмеченные <span style="color:red;">*</span> обязательны для заполнения.</i></td></tr>|</table>
recipient = .............
redirect = .............
dataArray {
10.label = ФИО
10.type = FIO=input
10.required = 1
20.label = Телефон
20.type = PHONE=input
20.required = 1
30.label = E-mail
30.type = EMAIL=input
35.label = Ваш заказ
35.type = ORDER=input
35.value.data = GPvar:order_info
35.required = 1
40.type = submit=submit
40.value = Заказать
}

}

Поля recipient и redirect почему-то не работают. Вроде синтаксис правильный. Вопрос как можно указать через TS адрес куда отсылать сообщение и страницу куда переходить после отправки.

Tod
05.03.2008, 16:41
Ужос. Возился целый день с этим(( Я, в принципе, читал и ранее много англоязычных заметок о нестабильной работе некоторых полей mailform через TS, но искренне пытался это как-то побороть:) Увы, пришлось воспользоваться старинным проверенным ранее методом:

lib.order_form = COA
lib.order_form {

10 = HTML
10.value (
<div class="csc-header csc-header-n2"><h1>Оформить заказ</h1></div>
<form action="17.html" id="mailform" name="mailform" enctype="multipart/form-data" method="post" target="_top" onsubmit="return validateForm('mailform','FIO,%D0%A4%D0%98%D0%9E,PH ONE,%D0%A2%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD,ORD ER,%D0%97%D0%B0%D0%BA%D0%B0%D0%B7','Ваше сообщение отправлено. Спасибо.','Вы должны заполнить следующие поля:','Вы ввели некорректный Email адрес.')"><div style="display:none;"><input type="hidden" name="html_enabled" id="mailformhtml_enabled" value="" /><input type="hidden" name="subject" id="mailformsubject" value="Заказ с сайта www.хххххх.ua" /><input type="hidden" name="locationData" value="17:tt_content:1186" /></div>
<table width="80%" border="0" cellspacing="0" cellpadding="5"><tr><td colspan="2"><i>Поля отмеченные <span style="color:red;">*</span> обязательны для заполнения.</i></td></tr><tr><td width="40%" valign="top"><label for="mailformFIO">ФИО</label><span style="color:red;"> *</span></td><td><input type="text" name="FIO" id="mailformFIO" size="20" value="" class="input_style" /></td></tr><tr><td width="40%" valign="top"><label for="mailformPHONE">Телефон</label><span style="color:red;"> *</span></td><td><input type="text" name="PHONE" id="mailformPHONE" size="20" value="" class="input_style" /></td></tr><tr><td width="40%" valign="top"><label for="mailformEMAIL">E-Mail</label></td><td><input type="text" name="EMAIL" id="mailformEMAIL" size="20" value="" class="input_style" /></td></tr><tr><td width="40%" valign="top"><label for="mailformORDER">Заказ</label><span style="color:red;"> *</span></td><td><input type="text" name="ORDER" id="mailformORDER" size="20" value="
)

20 = TEXT
20.data = GPvar:order_info

30 = HTML
30.value (
" class="input_style" /></td></tr><tr><td width="40%" valign="top"></td><td><input type="submit" name="formtype_mail" id="mailformformtype_mail" value="Заказать" class="submit_style" /></td></tr></table>
</form>
)

В чем, собственно фишка, то есть как действовать.
1. Создаете полностью рабочую форму такую, как она должна быть
2. Копируете код ХТМЛ в TS таким образом, как показано выше
3. Элемент контента с формой просто удаляете в меню "Страница", то есть оно остается видным в Списке, а на сайте не отображатся. В коде значение value="17:tt_content:1186" указывает на этот самый элемент, в котором видим поле email адресата.

Если кто-то знает решение попроще - велком... делитесь.