S
S
Sergey Shum2020-11-19 22:55:32
MODX
Sergey Shum, 2020-11-19 22:55:32

Why doesn't modx ajax work on some mobile browsers?

Good afternoon, a very strange thing is happening on the site https://lesowik.ru - pop-up windows "view prices" that are loaded via ajax for some reason do not work on some mobile browsers? And it’s very strange on one phone in chrome everything works well, but it doesn’t load in the Yandex browser, on the other phone it opens exactly the opposite in Yandex, but Google doesn’t ?? never encountered this. I will be glad to any comments here is the code for windows


$(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);
}

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question