S
S
Sergey Shum2020-11-11 04:13:12
MODX
Sergey Shum, 2020-11-11 04:13:12

How to display modx ajax in migx &value snippet?

Good afternoon,
I ran into a problem, there is a migx (group) field and a nested migx (product) in it, which I display via ajax.
usually specify &value=`` ? in this form does not work

below I give the code of the script and the snippet:

<!-- скрипт запроса и обработки -->
<script type="text/javascript">
$(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 value = $(this).data('value');
  	// Ajax запрос к текущей страницы (а на ней наш сниппет) методом post
  	$.post(document.location.href, {action: action,value}, function(data) {
  		// Выдаем ответ
  		$('#result').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['value'] = ''; // ДУМАЮ ПРОБЛЕМА В ЭТОМ МЕСТЕ
    $params['tpl'] = 'tovars_id';
    $params['where'] = '{"state:=":"Да"}';
    $res = $modx->runSnippet('getImageList', $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