gpt4 book ai didi

javascript - 在 ajax 请求 symfony 后刷新 View 中的数据

转载 作者:行者123 更新时间:2023-11-29 19:08:51 25 4
gpt4 key购买 nike

我是 Ajax 新手,我整合了一个 ajax 请求。目的是一个用户可以喜欢,不像一篇文章。看我的代码:

Controller

public function likeAction(Request $request, Article $article, $slug)
{
if (!$this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
throw $this->createAccessDeniedException();
}

if ($request->isXmlHttpRequest()) {
$tokenStorage = $this->get('security.token_storage');
$currentUser = $tokenStorage->getToken()->getUser();
$likes = $article->getLikes();
foreach ($likes->getUsers() as $user) {
if ($user == $currentUser) {
throw new \Exception('Vous aimez déjà cet article !');
}
}
$likes->addUser($currentUser);
$likes->setCount($likes->getCount() + 1);
$em = $this->getDoctrine()->getManager();
$em->persist($article);
$em->flush();

$count = $article->getLikes()->getCount();
return new JsonResponse(array('data' => $count));
}
return $this->redirectToRoute('pm_platform_view', array('slug' => $slug));
}

路线

pm_platform_like:
path: /like/{slug}
defaults:
_controller: PMPlatformBundle:Article:like

查看

<a class="btn btn-blue-grey" id="like" role="button"></a>
<span class="counter" id="counter">{{ article.likes.count }}</span>

<script>
$( document ).ready(function() {
$(document).on('click', '#like', function (e) {
$this = $(this);
$.ajax({
type: 'GET',
url: '{{ path('pm_platform_like', {slug: article.slug}) }}',
dataType: 'JSON',
data: {},
success: function() {
//refresh article.count here
}
});
});
});
</script>

目前 ajax 请求有效并且“like”被保存在数据库中。但在我看来没有任何变化,我必须“刷新”数据,更准确地说是在 ajax 请求成功后文章实体的 like count 属性。我需要帮助。

最佳答案

假设您有另一个获得计数的 ajax 请求。

success: function(response) {
//Recall function here that gets like count.
fnGetLikeCount();
}

已编辑:

你能发布那个像计数一样的函数/ajax 请求吗?

编辑 2:

是的,您可以从 Controller 发送响应,并可以分配/设置计数,如标签/div 或您正在使用的任何东西。

关于javascript - 在 ajax 请求 symfony 后刷新 View 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com