Как я могу добавить строку PHP в массив контекста Handlebars?

Я использую handlebars и помощник регистрации handlebars, чтобы перебрать массив, который я поместил в свой контекст и отобразил как ul. Один из элементов li должен иметь несколько php. Я не могу найти способ поместить php в li.

Вот что у меня сейчас:

var context = {
social: [
{ url: "[redacted]"},
{ url: "[redacted]"},
{ url: "[redacted]"},
{ url: "<?php echo get_favorite_toggle('{{post_id}}'); ?>"}
]
}

0

Решение

Вы не можете понять это, потому что вы не до конца понимаете, как работают PHP и Handlebars. По умолчанию ваш <?php ?> теги будут работать только в файлах с расширением PHP. И я думаю, что ваши шаблоны Handlebars имеет .handlebars расширение.
Итак, один наивный способ — переименовать этот шаблон в .php, Но это может сломать другие интеграции.
Надлежащим способом является запрос вашего PHP-файла с использованием AJAX и рендеринг на основе ответа.

Создать новый файл, favorite.phpНапример, и поставить этот код:

<?php
// Your imports here
$post_id = $_GET['post_id'];

echo get_favorite_toggle($post_id);

?>

Теперь ваш файл JS может выглядеть так:

 var context = {
social: [
{ url: "[redacted]"},
{ url: "[redacted]"},
{ url: "[redacted]"}
]
};
jqueryNoConflict.ajax({
url: "/favorites.php?post_id="+post_id,
success: function (data) {
context.push({ url: data});
}
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]