SHSA37
@SHSA37
Developer

Почему modx ajax не срабатывает на некоторых мобильных браузерах?

Добрый день, на сайте https://lesowik.ru
происходит очень странная вещь - всплывающие окна "посмотреть цены" которые подгружаются по ajax
почему то не срабатывают на некоторых мобильных браузерах? Причем очень странно на одном телефоне в хроме все хорошо работает но в яндекс браузере не подгружает, на другом телефоне ровно наоборот в яндексе открывает, а гугл нет?? ни разу с таким не сталкивался. буду рад любым комментариям

вот код для окон
[[!ajax_modal]]
$(document).ready(function() {
	// Вешаем обработчик события "клик" на все ссылки с классом 
	$(document).on('click', 'a.ajax_link', function(e) {
  	$('#result').empty();
  	$('#result').html('<span uk-spinner="ratio: 2"></span>');
  	// Берем действие из атрибута data-action ссылки
  	var action = $(this).data('action');
  	var offset = $(this).data('offset');
  	var namber = $(this).data('namber');
  	// Ajax запрос к текущей страницы (а на ней наш сниппет) методом post
  	$.post(document.location.href, {action: action,offset,namber}, function(data) {
  		// Выдаем ответ
  		$('#result').html(data);
  	})
  	e.preventDefault();
  })
  $(document).on('click', 'a.ajax_link2', function(e) {
  	$('#result2').empty();
  	$('#result2').html('<span uk-spinner="ratio: 2"></span>');
  	// Берем действие из атрибута data-action ссылки
  	var action = $(this).data('action');
  	var offset2 = $(this).data('offset2');
  	var namber2 = $(this).data('namber2');
  	// Ajax запрос к текущей страницы (а на ней наш сниппет) методом post
  	$.post(document.location.href, {action: action,offset2,namber2}, function(data) {
  		// Выдаем ответ
  		$('#result2').html(data);
  	})
  	e.preventDefault();
  })
})


<?php
// Откликаться будет ТОЛЬКО на ajax запросы
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
// Сниппет будет обрабатывать не один вид запросов, поэтому работать будем по запрашиваемому действию
// Если в массиве POST нет действия - выход
if (empty($_POST['action'])) {return;}

// А если есть - работаем
$res = '';
switch ($_POST['action']) {
	case 'tovmodal':
		$params = array();
    $params['tvname'] = 'tovars';
    $params['tpl'] = 'modal_tov_id';
    $params['where'] = '{"state:=":"Да"}';
    $params['docid'] = $_POST['namber'];
    $params['limit'] = '1';
    $params['offset'] = $_POST['offset'];
    $params['tovtitle'] = $_POST['namber'];
    $res = $modx->runSnippet('getImageList', $params);
		break;
	case 'tovmodal2':
		$params = array();
    $params['parents'] = '1';
    $params['depth'] = '1';
    $params['hideContainers'] = '1';
    $params['tpl'] = 'modal_tov_id2';
    $params['tplFirst'] = '{"rowtovar:=":"Да"}';
    $params['limit'] = '1';
    $params['docid'] = $_POST['namber2'];
    $params['offset'] = $_POST['offset2'];
    $params['tovtitle'] = $_POST['namber2'];
    $params['includeTVs'] = 'tovars,tovar-block,price,galerey,descript2';
    $res = $modx->runSnippet('pdoResources', $params);
		break;
}

// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX
if (!empty($res)) {
	die($res);
}
  • Вопрос задан
  • 15 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы