Загрузить страницу через Ajax без шаблона
Здравствуйте, не смог найти простой способ просто загрузить содержимое страницы [[*content]] без шаблона этой страницы…
у страницы ставить без шаблона не подходит такой вариант.
<a data-fancybox data-type="ajax" data-src="[[~42]]" href="#">Тест2</a>
хочу грузить страницы, но грузит и шаблон ее…у страницы ставить без шаблона не подходит такой вариант.
Комментарии: 8
Попробуйте не [[~ID]], а [[#ID.content]]
<a data-fancybox data-type="ajax" data-src="[[#42.content]]" href="#">Тест3</a>
контент подгрузил со страницы в моем случае в footer… получается это уже не ajax…[[#42.content]] - грузит содержимое без шаблона. но не ajax..
Простейший способ решения задачи: сделать запрашиваемый ресурс без шаблона.
Вот у меня скрипт 1 есть, мб поможет как:
Вот у меня скрипт 1 есть, мб поможет как:
$(document).on('click', '.modalTrigger', function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: '[[~ID]]',
data: {parent: '[[*id]]'},
success: function(data) {
if (data){
$('#modalAjax').html(data);
}else{
AjaxForm.Message.error('Что-то пошло не так, попробуйте позже!');
}
}
});
});
так… осталось понять как это применить…
это засунуть в js файл?
а вызывать как тогда… )
а вызывать как тогда… )
Засунуть в файл вряд-ли получится, так не передашь ID… вызывать в шаблоне страницы, где эта функция должна выполняться. Вызывается классом modalTrigger на кнопке необходимой, а выводится вызов в блоке с id modalAjax
Нашел другое решение и оно работает. От сюда решение modzone.ru/blog/2015/12/22/ajax-loading-of-content/
Создадим файл, на который будем отправлять AJAX запрос и который будет возвращать контент указанной страницы. Назовем его ajax.php и положим в папку assets.
Создайте JavaScript файл, например script.js, и добавьте в него следующий код:
Добавьте на вашу страницу HTML код для модального окна Bootstrap:
Создадим файл, на который будем отправлять AJAX запрос и который будет возвращать контент указанной страницы. Назовем его ajax.php и положим в папку assets.
ajax.php
<?php
// Если запрос не AJAX или не передано действие, выходим
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest' || empty($_REQUEST['action'])) {exit();}
$action = $_REQUEST['action'];
define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)).'/index.php';
$modx->getService('error','error.modError');
$modx->getRequest();
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
$modx->error->message = null;
$output = '';
switch ($action) {
case 'getContent':
// Если не передан id страницы, тоже выходим
$id = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : 0;
if (empty($id)) {
exit();
};
$object = $modx->getObject('modResource',$id);
$output = $object->get('content');
// Парсим теги MODX
$maxIterations= (integer) $modx->getOption('parser_max_iterations', null, 10);
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), $maxIterations);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), $maxIterations);
}
@session_write_close();
exit($output);
Создайте JavaScript файл, например script.js, и добавьте в него следующий код:
$(document).on('click', '.read-more', function(e) {
e.preventDefault();
var id = $(this).data('id') || 0;
// Вставляем контент в тело модального окна
$("#content").load("/assets/ajax.php", {action: "getContent", id: id}, function(response) {
// Если ответ не пустой, открываем модальное окно
if (response) {
$("#mymodal").modal('show');
}
});
});
Подключите созданный JavaScript файл на вашем сайте. <script src="путь/к/вашему/script.js"></script>
Добавление разметки для модального окна:Добавьте на вашу страницу HTML код для модального окна Bootstrap:
<div class="modal fadeIn" id="mymodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Модальное окно</h4>
</div>
<div id="content" class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default btn-close">Закрыть</button>
</div>
</div>
</div>
</div>
Пример ссылки, где 42 это id страницы:<a href="#" class="read-more" data-id="42">Подробнее</a>
Все, теперь страницы будут открываться без шаблона страницы.
Помогите, не получается вывести pagetitle в
<h5 class="modal-title" id="orderModalLabel"></h5>
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.