Наверх
 

Навигация
Опрос
Какие виды уроков Вы хотите видеть на сайте?
Битрикс
DLE
CSS
Joomla
Wordpress
Все для хостинга
Все для фотошопа
Другое

База уроков » » » » Простая ajax подписка на рассылку в один клик

Простая ajax подписка на рассылку в один клик

17 июн 2014 | Комментариев: 0 | Просмотров: 3129

В этой статье я расскажу как быстро сделать простую ajax подписку на рассылку в один клик. Первым делом мы подключим библиотеку jquery с гугла:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

Далее мы создаем файл subscribe.php, где будет наша сама форма подписки, и разместим в папке /include/ajax/

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("subscribe");
// если есть post запрос с почтой то исполняем код
if($_POST["email"]) {
$EMAIL = $_POST["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) {
$popuptitle = '<span style="color: green">Удачно</span>';
$popuptext = $EMAIL .' подписан на рассылку';
}
else {
$popuptitle = '<span style="color: red">Ошибка</span>';
$popuptext = $EMAIL .' уже был подписан на рассылку';
}
/* если ajax не подключен */
if ($_POST["action"] != "ajax") {
header('Location: '.$_SERVER['HTTP_REFERER']);
}
}
 
?>
<? if($popuptitle || $popuptext):?>
<script type="text/javascript" >
$.gritter.add({
title: '<? echo $popuptitle;?> ',
text: '<? echo $popuptext;?> ',
sticky: false,
time: 2500
});
</script>
<? endif ;?>
 
<form action="/include/ajax/subscribe.php" name="subscribe" method="post">
<label>Подписаться на новости:</label>
<input type="text" value="" title="Ваш e-mail" class="mailing-text" name="email"/> <br />
<input type="submit" value="Подписаться" title="" class="mailing-submit" /><br />
</form>

Подключаемый скрипт необходим мне для всплывающего окошка для оповещения пользователя, взять скрипт можно тут

Теперь я подключу этот файл в шаблоне сайт с помощью компонента bitrix:main.include обернув в div с классом mailing

<div class="mailing">
 <?$APPLICATION->IncludeComponent(
 "bitrix:main.include",
 "",
 Array(
 "AREA_FILE_SHOW" => "file",
 "PATH" => "/include/ajax/subscribe.php",
 "EDIT_TEMPLATE" => ""
 )
 );?>
 </div>
Последний шаг это создание скрипта для ajax обработки его назовем файл subscr.js подключим его в хэдере вот его содержимое
/* Function for ours ajax inquiry */
function ajaxpostshow(urlres, datares, wherecontent){
 $.ajax({
 type: "POST",
 url: urlres,
 data: datares,
 dataType: "html",
 beforeSend: function(){
 var elementheight = $(wherecontent).height();
 $(wherecontent).prepend('<div class="ajaxloader"></div>');
 $('.ajaxloader').css('height', elementheight);
 $('.ajaxloader').prepend('<img class="imgcode" src="/js/ajax/ajax-loader.gif">');
 },
 success: function(fillter){
 $(wherecontent).html(fillter);
 
 }
 });
}
 
 /* For subscribe */
 $(".mailing form .mailing-submit").live("click",function(){
 var formsubscrube = $(this).parents("form").serialize();
 formsubscrube = formsubscrube + '&action=ajax';
 ajaxpostshow("/include/ajax/subscribe.php", formsubscrube, ".mailing" );
 return false;
 });
Вот собственно и все ajax подписка в один клик сделана, подписка будет идти на все разделы , в личном кабинете пользователь сможет отписаться от не нужного ему раздела .



Теги: Битрикс

Ссылка на новость:

    html-cсылка на публикацию
    BB-cсылка на публикацию
    Прямая ссылка на публикацию

ЕЩЕ НА ЭТУ ТЕМУ:

Вывести картинку раздела и подраздела битрикса

Вывести картинку раздела и подраздела битрикса

В этой статье расскажу и покажу как вывести картинку раздела или подраздела категорий. Следовательно картинка берется с товара и становится в раздел.
Ошибка в Битрикс The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.

Ошибка в Битрикс The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php.

Иногда возникает ошибка в Битрксе The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php. и
Как выгрузить товары только в наличии из Битрикса в Яндекс Маркет

Как выгрузить товары только в наличии из Битрикса в Яндекс Маркет

По умолчанию Битрикс выгружает в YML (Яндекс Маркет) все активированные товары.
Связь способов доставки с платежными системами в компоненте bitrix:sale.order.ajax

Связь способов доставки с платежными системами в компоненте bitrix:sale.order.ajax

Часто требуется сделать так, чтобы в оформлении заказа какие-то платежные системы показывались только для определенных служб доставки. Например, для доставки
Ошибка CRubric::OnBeforeLangDelete (subscribe) при удалении сайта на Битриксе

Ошибка CRubric::OnBeforeLangDelete (subscribe) при удалении сайта на Битриксе

Ошибка CRubric::OnBeforeLangDelete (subscribe) при удалении сайта на Битриксе. Расскажу как ее исправить.
Отправка письма на почту через веб-форму для Битрикса

Отправка письма на почту через веб-форму для Битрикса

Этим уроком я расскажу как сделать, чтоб на Битриксе работала отправка письма на почту через веб-форму. Сразу отвечу на резонный вопрос о том что ведь есть в
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.