Привет знатоки!
Кто подскажет как передать массив текущего элемента в Ajax запросе. Можно сделать проще и запихать скрипт в цикл foreach, но хочется ограничиться скриптом за пределами цикла. Пробовал также запихать этот массив в скрытый инпут с присвоением
id="item_<?= $arItem["ID"]; ?>", и получать его скажем так:
var ID = $(this).attr('id'); // Берется из id кликнутого элемента
var ITEM = $('#item_' + ID); // Собственно сам скрытый инпут с подстановкой полученного id
По идее все (правильно). Но почему то сформированный массив игнорирует то, что инпут скрытый и выводится на странице. В данный момент сделал следующее:
Преобразуем PHP массив в JS
$rsItemJS = array(
"ID" => $arItem["ID"],
"NAME" => $arItem["NAME"],
"PROPERTIES" => $arItem["PROPERTIES"]
);
$arItemJS = CUtil::PhpToJSObject($rsItemJS);
Далее в JS скрипте надо передать этот массив! Элементов может быть много, как передать именно тот, на который был сделан клик?
$(document).ready(function ($) {
$('.item').on('click', function () {
var ITEM = <?= $arItemJS ?>;
var AjaxSelectItem = {ITEM: ITEM};
ajaxrequest('/include/popup.modal.php', AjaxSelectItem , ' .modal-body');
return false;
});
});
Собственно сам файл script.js в котором лежит функция ajaxrequest
function ajaxrequest(url, param, content) {
$.ajax({
type: "POST",
url: url,
data: param,
success: function (response) {
$(content).html(response);
}
});
}
У кого какие идеи? Куда мне копать надо, кто задаст мне верный вектор для решения?