Задача.
Есть форма. Нужно добавить данные с формы 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. Но вдруг ты встрепетнешься и спросишь: Надо ли проверять входные данные на стороне сервера, и я отвечу ДА
Комментариев нет:
Отправить комментарий