Подписка на рассылки аякс
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("subscribe");
// если есть post запрос с почтой то исполняем код
if($_POST["email"]) {
$EMAIL = strtolower(htmlspecialcharsbx($_POST['email']));
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
/* получим значение пользователя */
if ($USER->IsAuthorized()){
global $USER;
$USER = $USER->GetID() ;
}
else {
$USER = NULL ;
}
/* определим рубрики активные рубрики подписок */
$RUB_ID = array();
$rub = CRubric::GetList(array(), array("ACTIVE"=>"Y"));
while($rub->ExtractFields("r_")):
$RUB_ID = array($r_ID) ;
endwhile;
/* создадим массив на подписку */
$subscr = new CSubscription;
$arFields = Array(
"USER_ID" => $USER,
"FORMAT" => "html/text",
"EMAIL" => $EMAIL,
"ACTIVE" => "Y",
"RUB_ID" => $RUB_ID,
"SEND_CONFIRM" => "N"
);
$idsubrscr = $subscr->Add($arFields);
if($idsubrscr) {
$return['status'] = 1;
$return['message'] = "Вы подписаны на рассылку";
}
else {
$return['status'] = 0;
$return['message'] = 'Вы уже подписаны на рассылку';
}
} else {
$return['status'] = 0;
$return['message'] = "Email указан неверно";
}
} else {
$return['status'] = 0;
$return['message'] = "Email не указан";
}
$return['message'] = iconv('windows-1251','utf-8', $return['message']);
echo json_encode($return);
<form id="subscriptionForm" class="mailFeed">
<input type="text" name="email">
<button tyle="submit">Подписаться</button>
<div class="clearfix"></div>
<div class="result"></div>
</form>
$('#subscriptionForm').submit(function(event) {
$.ajax({
url: '/new_site/ajax/subscribe.php',
type: 'POST',
dataType: 'json',
data: $('#subscriptionForm').serialize(),
})
.done(function(answer) {
console.log(answer);
if (answer.status == 1) {
$('#subscriptionForm .result').html('<div class="success">'+answer.message+'</div>');
$('#subscriptionForm .result').fadeIn('400', function() {
setTimeout(function(){
$('#subscriptionForm .result').fadeOut('400');
}, 1000);
});
} else if (answer.status == 0) {
$('#subscriptionForm .result').html('<div class="error">'+answer.message+'</div>');
$('#subscriptionForm .result').fadeIn('400', function() {
setTimeout(function(){
$('#subscriptionForm .result').fadeOut('400');
}, 1000);
});
}
})
.fail(function() {
console.log("error");
});
return false;
});