Last active
December 12, 2015 02:29
-
-
Save denysbutenko/dd41e200ac8169d8b22a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Воспользовавшись сниппетом getResourceField вывести данные поля нужного ресурса | |
//Код сниппета ajax: | |
// Откликаться будет ТОЛЬКО на ajax запросы | |
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;} | |
// сниппет будет обрабатывать не один вид запросов, поэтому работать будем по запрашиваемому действию | |
$action = $_POST['action']; | |
// Если в массиве POST нет действия - выход | |
if (empty($action)) {return;} | |
//А если есть - работаем | |
$res = ''; | |
switch ($action) { | |
case 'field': | |
$params = array(); | |
$params['id'] = $_POST['id']; | |
$params['field'] = $_POST['field']; | |
$res = $modx->runSnippet('getResourceField', $params); break; | |
// А вот сюда потом добавлять новые методы | |
} | |
// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX | |
if (!empty($res)) { | |
die($res); | |
} | |
?> | |
//Я создал отдельно ресурс в корне контекста, под названием ajax и соответствующим псевдонимом, он доступен по адресу mysite.ru/ajax.html, содержащий: | |
[[!ajax]] | |
//Вероятно чтобы «не путался под ногами» вызов сниппета и централизовать адрес ajax запросов. На всякий случай задал пустой шаблон и, само собой, скрыл для меню. | |
//Код в теге HEAD используемого для примера шаблона: | |
<script type="text/javascript" language="JavaScript" src="assets/js/jquery/main.js"></script> | |
<script type="text/javascript" language="JavaScript"> | |
jQuery(function($){ | |
$('#results').load('ajax.html', {action: 'field', id: '56', field: 'content'}, function(){ | |
alert('Запрос успешно выполнен! Данные получены.'); | |
}); | |
}); | |
</script> | |
//Код в теге BODY, в любом удобном месте, используемого для примера шаблона: | |
<div id="results"></div> | |
//При загрузке страницы с заданным шаблоном, используемым для примера, в тег div, под идентификатором results, произведётся асинхронная загрузка содержимого поля content ресурса с ID 56. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment