blackseabreathe
@blackseabreathe
brackets

Как вывести дочек нужного ресурса modx api + ajax?

Что пытаюсь сделать?
Есть дерево
-Родитель1 --дочка1 --дочка2
-Родитель2 --дочка1 --дочка2 --дочка2...

Есть селекты на сайте, в них овер-дофига option, в каждом из которых есть id (id = правильный id ресурса). Эти option подгружаются в селект через pdoMenu. Нужно чтобы при выборе n-ного option в этом селекте, пока что в определенный #div подгружались на Ajax дочки именно выбранного option.
Реализация:
0 Простой вывод ресурсов в select
[[pdoMenu?
&parents=`[[*id]]`
&level=`0`
&limit=`0`
&tpl=`@INLINE <option data-id="[[+id]]" value="[[+id]]">[[+pagetitle]]</option>`
]]

1 Сделал страницу на сайте content.html
2 Сделал для этой страницы пустой шаблон
3 На страницу в содержимое вставил сниппет [[!getContent]]
4 Сам сниппет:
$res = $modx->getObject('modResource', $_POST['id']);
return  $res->getMany('Children');

5 jquery:
$('.inpts select#brand').on('change',function(e){
var id = $(this).find('option:selected').attr('data-id');
$.ajax({
type: "POST",
url: "content.html",
data: "id="+id,
success: function(content){
$(".inpts").html(content);
}
});
});


Что в итоге получаю?
Там где должны выводиться дочки нужного ресурса выводится тупо слово "Array"
Что делаю не так?

Проверил что сие скрипт работает так - вместо getMany('Chidren') указал get('pagetitle') - в итоге выводится правильный заголовок, а вот с дочками беда какая-то
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
blackseabreathe
@blackseabreathe Автор вопроса
brackets
Если кому-то поможет.

$res = $modx->getObject('modResource', $_POST['id']);
$id = $res->get('id');
$depth = 1;
$ids = $modx->getChildIds($id, $depth);
$docs = $modx->getCollection('modResource', array(
'id:IN' => $ids
,'alias:!=' => 'f'
));
$output = '';
foreach ($docs as $doc) {
$output .= $doc->get('pagetitle') . '<br/>';
}
return $output;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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