25.01.2016
Код формы
Количество показов: 3661
Форма заказа звонка на инфоблоках без перезагрузки страницы не привязанная к шаблону.
Форма заказа звонка на инфоблоках без перезагрузки страницы не привязанная к шаблону.Код формы
<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/>
Количество показов: 3661