Skip to content

Instantly share code, notes, and snippets.

@dimitriipro
Created April 4, 2017 13:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dimitriipro/17b87c2d9816c9d39032e1f732ce4356 to your computer and use it in GitHub Desktop.
Save dimitriipro/17b87c2d9816c9d39032e1f732ce4356 to your computer and use it in GitHub Desktop.
Пример из документации с коментариями
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("AJAX");
/* подключаем библиотеку */
CJSCore::Init(array('ajax'));
/* ставим обработчик запроса */
$sidAjax = 'testAjax';
if(isset($_REQUEST['ajax_form']) && $_REQUEST['ajax_form'] == $sidAjax){
/* сообщаем что не надо показывать шапку и футер в ответе*/
$GLOBALS['APPLICATION']->RestartBuffer();
echo CUtil::PhpToJSObject(array(
'RESULT' => 'HELLO',
'ERROR' => ''
));
/* умираем */
die();
}
/* если это не запрос то отображаем страницы */
?>
<div class="group">
<div id="block"></div >
<div id="process">wait ... </div >
</div>
<script>
window.BXDEBUG = true;
function DEMOLoad(){
BX.hide(BX("block"));
BX.show(BX("process"));
/*делаем запрос и передаем полученный результат в фукцию DEMOResponse */
BX.ajax.loadJSON(
'<?=$APPLICATION->GetCurPage()?>?ajax_form=<?=$sidAjax?>',
DEMOResponse
);
}
function DEMOResponse (data){
BX.debug('AJAX-DEMOResponse ', data);
/*запихиваем что у нас в data.RESULT в элемент с id block*/
BX("block").innerHTML = data.RESULT;
BX.show(BX("block"));
BX.hide(BX("process"));
/* сообщаем о нашем событии */
BX.onCustomEvent(
BX(BX("block")),
'DEMOUpdate'
);
}
BX.ready(function(){
/*
*/
BX.hide(BX("block"));
BX.hide(BX("process"));
/* вешаем функцию на клик по классу */
BX.bindDelegate(
document.body, 'click', {className: 'css_ajax' },
/* функция */
function(e){
if(!e)
e = window.event;
DEMOLoad();
return BX.PreventDefault(e);
}
);
});
</script>
<div class="css_ajax">click Me</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment