при добавление в бд поста через ajax, отправляю этот пост в json формате, все приходит, но я не могу понять как в div.container_box показать его. В контроллере выводятся все посты из бд, но если type = xhr то подгружает добавленный пост
public function all_post(Request $request, Response $response, $args)
{
$stmt = $this->pdo->query("SELECT * FROM `post`");
$posts = $stmt->fetchAll(\PDO::FETCH_ASSOC);
if ($request->isXhr()) {
$response->getBody()->write(json_encode(end($posts))); // последний ключ из БД
return $response->withHeader('Content-type',
'application/json; charset=utf-8');
}
return $this->view->render($response, 'admins/admin.posts.twig',
[
'posts' => $posts
]);
}
js
// выше идет сохранение поста в БД
$(document).on('click','#add_post_popup', function () {
$(this).closest('form').find("input[type=file],input[type=text],
textarea").val("");
$.ajax(
{
url: "http://slim.com/spirits/panel/post",
method: 'GET',
cache: false,
dataType: 'json',
success: function(d) {
$('.wrapper').append(JSON.stringify(d)) //
// $('.wrapper').load("http://slim.com/spirits/panel/post .container_box");
}
});
});
twig
<div class="wrapper">
{%for post in posts%}
<div class="container_box">
{{post.id}}
{{post.name}}
{{post.link}}
</div>
{%endfor%}
</div>
Как мне поместить его в div.container_box и показать как два верхних
Заранее спасибо!
Вместо
$('.wrapper').append(JSON.stringify(d))
Сделайте что-то вроде этого:
var item = $('<div class="container-box"></div>');
item.text( 'id - ' + d.id + ' name - ' + d.name + ' alias - ' + d.link );
$('.wrapper').append( item );
Для множества ключей в d будет так наверное:
var item = $('<div class="container-box"></div>');
item.text( Object.keys( d ).map( key => `${key} - ${d[key]}` ).join(' ') );
$('.wrapper').append( item );
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Почему вычисляемое свойство,полученное из Промиса, выдает [object Promise] на самой странице, хотя в консоли 14 (как и должно быть):
Есть всплывающая форма, когда нажимаю на кнопку то форма не открывается, ранее убирал hidden, после форма отображалась корректно, но перестала...
Напрямую, через присвоение переменную передать не получитсяC php в js - можно, например, так: let var = '<?= $str ?>', но вот в обратную сторону этот фокус...