Бывает часто нужно сделать кнопку обратного звонка или просто отправку письма с проверкой полей без перезагрузки страницы.
Вот один из методов реализации для bitrix
<?
//require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
// Сначала подключим пролог, без него не будет работать API Битрикса
require( $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php' );
if(isset($_GET['action']))
{
if($_GET['action']=='callZakaz')
{
// Нужно убедиться, что все поля заполнены
if ( $_POST['PHONE']||$_POST['EMAIL'] )
{
// Передаём массив данных для отправки почты по почтовому событию
// EMAIL - содержит емейл из формы
// TEXT - содержит текст сообщения из формы
// iconv() используется на сайтах в кодировке Windows-1251, так как AJAX работает в кодировке UTF-8
// Для сайтов в кодировке UTF-8 iconv() использовать не нужно
$arMail = Array(
'PHONE' => $_POST['PHONE'],
'PRICE' => $_POST['PRICE'],
'NAME' => iconv('utf-8','cp1251',$_POST['NAME']) ,
'EMAIL' => $_POST['EMAIL'] ,
'LINK' => $_POST['LINK'] ,
'SRC' => $_POST['SRC'] ,
'NAME_PRODUCT' => iconv('utf-8','cp1251',$_POST['NAME_PRODUCT']),
'TEMA' => iconv('utf-8','cp1251',$_POST['tema'])
);
$vote='VOTE_CALL_ZAKAZ_SERVICE';
CEvent::SendImmediate( $vote, 's2', $arMail );
// Выводим сообщение, которое будет возвращено функцией $.post и передано в наш "спан для уведомлений"
echo 'Мы Вам перезвоним! Спасибо!';
}
}
}
?>