Блог специалистов
25.01.2016

Форма заказа звонка на инфоблоках без перезагрузки страницы не привязанная к шаблону.

Форма заказа звонка на инфоблоках без перезагрузки страницы не привязанная к шаблону.

Код формы <div id="error"></div> <form name="zoz" method="post"> <label> <p>Ваше имя:</p> <input type="text" name="NAME"> </label> <label> <p>Телефон:</p> <div class="md-phone"> <p>+7</p> <input class="code-phone" name="TEL" type="text"> </div> </label> <label class="time-best"> <p>ДЦ</p> <select name="dcdc" class="selectbox"> <option value="0">Не выбрано</option> <option value="11">Москва</option> <option value="12">Яхрома</option> </select> </label> <button class="modal-btn" type="submit">заказать звонок</button> </form> <script type="text/javascript" src="/bitrix/templates/yourtemp/js/call.js"></script> Код js файла //zvonok $('form[name=zoz]').submit(function () { var o = new Object(); $(this).find('input, textarea').each(function () { o[$(this).attr('name')] = $(this).val(); }); if (!o.TEL) document.getElementById("error").innerHTML = "Необходимо указать номер телефона!"; else if ($('[name=dcdc] option:selected').val() == 0) document.getElementById("error").innerHTML = "Необходимо выбрать Дилерский Центр!"; else { o['dcdc'] = $('[name=dcdc] option:selected').val(); $.post('/bitrix/templates/yourtemp/js/call.php', o, function (data) { if (data == '1') { document.getElementById("error").innerHTML = "Заявка принята!"; $('.md-close').click(); } else document.getElementById("error").innerHTML = "Произошла ошибка! Повторите попытку позже."; }); } return false; }); Код php файла <?require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); CModule::IncludeModule('iblock'); $el = new CIBlockElement; $str = iconv( "UTF-8" , "windows-1251", $str ); $date=date('d.m.Y H:i:s'); $PROP = $_POST; $_POST['NAME'] = iconv( "UTF-8" , "windows-1251", $_POST['NAME'] ); $_POST['TEL'] = iconv( "UTF-8" , "windows-1251", $_POST['TEL'] ); $PROP['NAME']=$_POST['NAME']; $PROP['TEL']=$_POST['TEL']; $PROP['DC']=$_POST['dcdc']; $arLoadProductArray = Array( "IBLOCK_ID" => 21, "PROPERTY_VALUES"=> $PROP, "NAME" => $_POST['NAME']." ".$date, "ACTIVE" => "Y", "DATE_ACTIVE_FROM"=>$date, //"PREVIEW_TEXT" => nl2br($_POST['M']), ); if($PRODUCT_ID = $el->Add($arLoadProductArray)) { CEvent::SendImmediate("RECALL", 's1', $PROP); echo '1'; } ?> Если есть зависимость от шаблонов, например, разные ДЦ получают на разый емаил, то замением: if($PRODUCT_ID = $el->Add($arLoadProductArray)) { if ($PROP['DC'] == 11){ CEvent::SendImmediate("RECALL", 's1', $PROP); echo '1'; } if ($PROP['DC'] == 12){ CEvent::SendImmediate("RECALL_yahroma", 's1', $PROP); echo '1'; } } Далее создаем событие RECALL и шаблон для него и в шаблоне пишем, если сделали на несколько ДЦ, то создаем еще одно событие RECALL_yahroma с таким же шаблоном, но разными городами и емейлами. <b>Имя:</b> #NAME#<br/> <b>Телефон:</b> #TEL#<br/> <b>ДЦ:</b> #dcdc#<br/>  

Количество показов: 3479




Возврат к списку