Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Передача параметров в веб-формы

00 голосов
7
Здравствуйте.
Стоит задача передачи параметров в веб-форму с последующей отправкой ее по почте.
Каким образом можно передать значение параметра, например, в текстовое поле ответа формы?
спросил 03 Апр, 13 от Miyamoto (200 баллов)

7 Ответы

00 голосов
Добрый день.
Не совсем понятна задача. Откуда будут передаваться параметры? Для отправки почты о добавлении веб-формы вам необходимо сгенерировать и применить шаблон сообщения в настройках вашей веб-формы.

Для этого вы можете использовать поля веб-формы. Использование полей и веб-форм подробно описано в документации (http://www.bitrixsoft.ru/help/source/form/help/ru/developer/index.php.html).
Для добавления рузельтатов веб-форм вы можете использовать функции Add и Update класса CFormResult.
ответил 03 Апр, 13 от BlackEva (820 баллов)
00 голосов
Поясню задачу.
Параметр передается при включении в php-файл веб-формы ($APPLICATION->IncludeFile ...), значение этого параметра необходимо передать в текстовое поле ответа веб-формы.
Другими словами - при заказе услуги из каталога посетитель сайта заполняет анкету, в которую автоматически заносится услуга, которую он выбрал, после чего эта анкета отправляется по и-почте.
ответил 03 Апр, 13 от Miyamoto (200 баллов)
00 голосов
Вы поможете решить эту задачу или мне читать документацию? :)
ответил 10 Июнь, 13 от Miyamoto (200 баллов)
00 голосов
Добрый день.

Читать документацию, конечно, полезно, но функции требуемы для этого пока не описаны.

Наиболее просто для вас будет в шаблоне веб-формы добавить занесение вашей переменной (которую вы передаете параметром при подключении компонента) сразу в ответ.

Для этого нужно просмотреть какое имя у этого вопроса в публичной части (например from_text_163 - это ответ типа строка с ID 163) и добавить в шаблон что-то типа:
$form_text_163 = <имя передаваемой переменной>
ответил 13 Сен, 13 от Kania (5,180 баллов)
00 голосов
Желательно еще добавить проверку чтобы присваивание происходило только если не нажата кнопка "Сохранить"
ответил 11 Дек, 13 от BlackEva (820 баллов)
00 голосов
Добрый день,
Цитата

Наиболее просто для вас будет в шаблоне веб-формы добавить занесение вашей переменной (которую вы передаете параметром при подключении компонента) сразу в ответ.

Не могли бы Вы поподробнее описать что следует сделать.
Создаю свой шаблон веб-формы и добавляю туда:
Код
  $form_date_731 = $_REQUEST['course_begin_date'];
  $form_text_738 = $_REQUEST['course_name']; ?>

Значения при этом не заносятся в поля ответов.
ответил 25 Март, 14 от SILVER (340 баллов)
00 голосов
Вот, пример формы для отправки сообщения, используя "почтовый шаблон" 1С-Битрикс.
Чтобы значения заносились в поля ответов, нужно присвоить их value. Смотрите поле e-mail в примере.

Код
<div class="zakaz">
Сделать заказ:

<?
if ($USER->IsAuthorized())
   { 
$go=$_REQUEST[go];

$login=htmlspecialcharsBack($_REQUEST[login]);
$email=htmlspecialcharsBack($_REQUEST[email]);
$phone=htmlspecialcharsBack($_REQUEST[phone]);
$fulname=htmlspecialcharsBack($_REQUEST[fulname]);
$message=htmlspecialcharsBack($_REQUEST[message]);
$radio=htmlspecialcharsBack($_REQUEST[radio]);


if(isset($go)) 
   { 

$arEventFields = array(
      "EMAIL_TO" => "roman@yenisite.ru",
      "EMAIL_FROM" => $email,
      "MESSAGE" => $message,
      "FULLNAME" => $fulname,
      "LOGIN" => $login,
      "PHONE" => $phone,
      "SUMMA" => $radio,
      "NAME_TOVAR" => $ELEMENT_NAME,
      "URL" => $APPLICATION->GetCurPageParam()
      );


   if(CEvent::Send("ADD_ZAKAZ", "ru", $arEventFields)) 
      { 
      echo "<br><font color=#333333>Письмо было успешно отправлено!</font>"; 
      } 
   else 
      { 
      echo "<br><font color=RED>Сообщение не отправлено!</font>"; 
      } 
   }

?>

<form action="<? echo $APPLICATION->GetCurPageParam(); ?>" method="POST">

<table valign="left" align="top" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100">E-mail:</td>
<td><input type="text" name="email" value="<?=$USER->GetEmail()?>"></td>
</tr>

<tr>
<td>Телефон:</td>
<td><input type="text" name="phone" value=""></td>
</tr>

<tr>
<td>Имя:</td>
<td><input type="text" name="fulname" value="<?=$USER->GetFullName()?>"></td>
</tr>
</table>
Комментарии: ds<br>
<textarea name="message" rows="5" cols="40" style="margin-top: 5px;" ></textarea>

<input type="hidden" name="login" value="<?=$USER->GetLogin()?>">
<br><input type="submit" name="go" value="Отправить"><br> 
</form>

<?
   } // if ($USER->IsAuthorized())
else
   echo "<br>Для доступа к возможности заказа, пожалуйста, авторизуйтесь."

?>

</div>


Событие можно создать скриптом:
Код
function UET($EVENT_NAME, $NAME, $SITE_ID, $DESCRIPTION)
{
    $et = new CEventType;

$et->Delete($EVENT_NAME);

    $et->Add(array(
        "SITE_ID"       => $SITE_ID,
        "EVENT_NAME"    => $EVENT_NAME,
        "NAME"          => $NAME,
        "DESCRIPTION"   => $DESCRIPTION
        ));
}

UET("ADD_ZAKAZ","Сделан заказ","ru",
"
#EMAIL_FROM# - емаил
#FULLNAME# - имя
#PHONE# - телефон
#VID# - вид
#SUMMA# - сумма
"
);



а затем отредактировать шаблон в административном разделе
Настройка продукта->Почтовые шаблоны
ответил 18 Июль, 14 от Siemka (1,020 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
7 ответов
0 голосов
2 ответов
0 голосов
2 ответов
спросил 12 Март, 14 от Gaser (100 баллов)
0 голосов
0 ответов
спросил 09 Дек, 15 от VI (120 баллов)