Задача.
Есть форма. Нужно добавить данные с формы AJAX-методом в информационный блок и еще чтобы инициировалось почтовое событие.
Решение.
Покумекав смекнул, что трудо-время затраты можно уменьшить если все это дело запилитть самому.
1. открываем файл bitrix/php_interface/init.php
2. добавляем код
3.подключаем JQuery
4. пишем простой код на JavaScript
5. Код формы.
6. Идем пить кумыс.
Есть форма. Нужно добавить данные с формы AJAX-методом в информационный блок и еще чтобы инициировалось почтовое событие.
Решение.
Покумекав смекнул, что трудо-время затраты можно уменьшить если все это дело запилитть самому.
1. открываем файл bitrix/php_interface/init.php
2. добавляем код
if(isset($_POST['email']) ){
CModule::IncludeModule('iblock');
$el = new CIBlockElement;
$PROP = array();
$PROP[1] =$_POST['email']; // свойству с кодом 1 - email
$PROP[2] = ''; // свойству с кодом 2 - phone
$arLoadProductArray = Array(
"MODIFIED_BY" => 1, // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 2, // номер IBLOCK_ID
"PROPERTY_VALUES"=> $PROP,
"NAME" => $_POST['name'],
"ACTIVE" => "Y", // активен
//"PREVIEW_TEXT" => "",
//"DETAIL_TEXT" => "",
//"DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
);
$PRODUCT_ID = $el->Add($arLoadProductArray);
// ПОЧТОВОЕ СОБЫТИЕ
$arSend = array(
"FIO" => $_POST['name'],
"PHONE" => $phone,
"EMAIL" =>$_POST['email'],
//"TEXT" => $text,
);
CEvent::Send('FEEDBACK_FORM',SITE_ID,$arSend);
}
3.подключаем JQuery
4. пишем простой код на JavaScript
$(document).ready(function() {
//$(".phone").mask("+7 (999) 999-99-99",{placeholder: " " },{completed:function(){}});
$('form').submit(function() {
var form = $(this);
var error = false;
form.find('input').each(function() {
if ($(this).val() == '' && $(this).attr("id") != 'fmail')
{
error = true;
alert('Необходимо заполнить поля');
$(this).focus();
return false;
}
});
if (!error)
{
var furl = form.attr("action");
var fparams = '';
var aParams = new Array();
for (var i = 0; i < this.elements.length; i++) {
var sParam = encodeURIComponent(this.elements[i].name);
sParam += "=";
sParam += encodeURIComponent(this.elements[i].value);
aParams.push(sParam);
}
fparams = aParams.join("&");
//console.log(fparams);
$.ajax({
type: "POST",
url: furl,
data: fparams,
success: function(msg) {
if (msg !== 'error')
{
form.find('input[type=text]').val('');
form.find('textarea').val('');
alert("Благодарим за заявку!\r\nНаш специалист свяжется с вами в течение дня.");
if (open)
{
open = false;
}
}
else
{
alert('Ошибка');
}
},
error:function(msg) {console.log(msg); }
});
}
return false;
});
});
5. Код формы.
6. Идем пить кумыс.
7. Но вдруг ты встрепетнешься и спросишь: Надо ли проверять входные данные на стороне сервера, и я отвечу ДА

Комментариев нет:
Отправить комментарий