на IE9 pdoResources не выводит TV через AJAX
У меня проблема c выводом TV только на IE9 (и ниже) и только через AJAX.
Есть чанк который отображается, как на сайте, так и подгружается через AJAX.
Через аjax вместо содержимого TV картинки выводится текстом " [[+tv.image]] "
Не могу понять как с этим связан браузер?
Проверял в Firefox, Crome, IE11 — все нормально, а в IE9 не работает
Вот как у меня это работает:
На сайте список статей выводятся через чанк articles.tpl
На странице статей внизу кнопка «Ещё». Она запускает AJAX-запрос к ресурсу ajax.
В параметрах передается тот же чанк articles.tpl.
При нажатии соотвественно грузится содержимое из чанка. Работает на jQuery.
PS: проверял на windows7 x86 и windows xp
Есть чанк который отображается, как на сайте, так и подгружается через AJAX.
Через аjax вместо содержимого TV картинки выводится текстом " [[+tv.image]] "
Не могу понять как с этим связан браузер?
Проверял в Firefox, Crome, IE11 — все нормально, а в IE9 не работает
Вот как у меня это работает:
На сайте список статей выводятся через чанк articles.tpl
<div class="article__image">
<img src="[[+tv.image]]" alt="[[+pagetitle]]" title="[[+pagetitle]]">
</div>
<div class="content__title">
<a href="[[~[[+id]]]]"><h3>[[+pagetitle]]</h3></a>
</div>
<div class="article__text">[[+introtext]]</div>
<div class="article__readmore">
<a href="[[~[[+id]]]]">Читать далее</a>
</div>
создал сниппет ajaxResources:<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
$action = filter_input(INPUT_POST,'action');
if (empty($action)) {return;}
$res = '';
switch ($action) {
case 'pdoResources':
$params = array();
$params['tpl'] = filter_input(INPUT_POST,'tpl');
$params['parents'] = filter_input(INPUT_POST, 'parents', FILTER_SANITIZE_NUMBER_INT);
$params['offset'] = filter_input(INPUT_POST, 'offset', FILTER_SANITIZE_NUMBER_INT);
$params['limit'] = filter_input(INPUT_POST, 'limit', FILTER_SANITIZE_NUMBER_INT);
$params['includeTVs'] = filter_input(INPUT_POST, 'includetvs');
$params['sortby'] = filter_input(INPUT_POST, 'sortby');//'{"menuindex":"DESC"}';
$res = $modx->runSnippet('pdoResources', $params);
break;
}
if (!empty($res)) {
die($res);
}
Сниппет лежит в отдельном ресурсе ajax (без кеширования).На странице статей внизу кнопка «Ещё». Она запускает AJAX-запрос к ресурсу ajax.
В параметрах передается тот же чанк articles.tpl.
При нажатии соотвественно грузится содержимое из чанка. Работает на jQuery.
PS: проверял на windows7 x86 и windows xp
Комментарии: 7
Может есть у кого какие идеи?
Есть вопрос. Зачем было писать какие то сомнительные сниппеты, когда кнопка «Еще» есть в стандартном pdoPage?
Я думал pdoPage только для пагинации. Просветите как можно использовать его в моем случае?
Почитай документацию.
Есть подозрение, что IE9 не передает параметр includetvs. Вместо получения этого параметра из POST забейте в массив руками нужное значение и посмотрите на результат.
Да действительно, все дело оказалось в этом. На странице у кнопки прописан параметр
Пришлось в коде ajax-запроса жестко прописать параметр «includeTVs».
Спасибо за подсказку
data-includeTVs="image"
jQuery под IE по не понятной причине не подключил этот параметр через метод $(this).data(), хотя остальные data- параметры передались. Может дело в регистре. Версия 1.11.3 по идее должна быть еще поддержка IE. Пришлось в коде ajax-запроса жестко прописать параметр «includeTVs».
Спасибо за подсказку
Я так понял IE9> используют устаревшую спцификацию HTML где параметры data- должны быть в нижнем регистре stackoverflow.com/questions/6509841/jquery-data-not-retrieving-data
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.