@sergey444

Как массив данных вывести через ajax в шаблонизатор Smarty из php?

Не получается вывести массив данных в конструкцию foreach в шаблонизатор Smarty.
Выяснил что необходимо использовать {literal}{/literal}. но при оборачивании js в эти теги, js вообще не работает.
Сайт сделан в mvc то есть все ниже перечисленное находится в разных файлах.

В firebug получаю массив

{"success":1,"message":"\u041a\u043e\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d","$resultComment":[{"kurs_id":"7","comment":"dcfvg","user_id":"777"}]}Debug:
Array
(
[success] => 1
[message] => Комментарий добавлен
[$resultComment] => Array
(
[0] => Array
(
[kurs_id] => 7
[comment] => dcfvg
[user_id] => 777
)

)

)


Нужно его передать в .tpl файл в конструкцию foreach


{foreach $resultComment as $item name=comment}

{$item["user_id"]}

{$item["comment"]}



{if $smarty.foreach.comment.iteration mod 1 == 0}

{/if}
{/foreach}


С помощью js, ajsx(файл - main.js).

function addTOComment(itemId){
var comment = $('#comment').val();
var postData = {comment: comment};

$.ajax({
type: 'GET',
async: true,
url: "/comment/addtocomment/" + itemId + '/',
data: postData,
dataType: 'json',
success: function(data){
if(data['success']){

$('#addcom').prepend(data);

alert(data['message']);

}else {
alert(data['message']);

}
}
} ) ;
}
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ответы на вопрос 2
dskripchenko
@dskripchenko
backend developer (Promo Interactive)
Вы сами то поняли что спрашиваете?
Если вам нужно динамически рендерить шаблон, то делайте это на сервере, и отдавайте в ответ на ajax уже отрендеренный html, останется только вставить в нужное место.
И прежде чем задавать вопрос постарайтесь хоть чуть-чуть вникнуть в тему
Ответ написан
Комментировать
@sergey444 Автор вопроса
Я сам разобрался, я отправлял с сервера json а нужно html я имею в виду dataType в ajax. Ну и на сервере создал tpl который потом отправил в #addcom.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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