Javascript 使用AJAX和symfony按类别筛选节时出错
Im使用AJAX(或triying)按类别过滤一部分电影,以下是Im使用的Jquery代码:Javascript 使用AJAX和symfony按类别筛选节时出错,javascript,jquery,ajax,symfony,twig,Javascript,Jquery,Ajax,Symfony,Twig,Im使用AJAX(或triying)按类别过滤一部分电影,以下是Im使用的Jquery代码: $(function(){ $('.Action').click(function(e){ $("#moviesContainer").html("Loading movies..."); $.get($(this).attr("href"), function(data) { $('#moviesContainer').html(data); e.preventDe
$(function(){
$('.Action').click(function(e){
$("#moviesContainer").html("Loading movies...");
$.get($(this).attr("href"), function(data) {
$('#moviesContainer').html(data);
e.preventDefault();
});
return false;
});
});
以及控制器:
/**
* @Route(path="/show/category/{category}", name="aflam_movie_show")
* @Template("MoviesBundle:Default:allmovies.html.twig")
*/
public function showMovieByCategoryAction(Request $request, $category)
{
$em = $this->getDoctrine()->getManager();
$dql = "SELECT a FROM MoviesBundle:Movie a WHERE a.category=" .$category." ORDER BY a.created DESC";
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query, /* query NOT result */
$request->query->getInt('page', 1)/*page number*/,
5/*limit per page*/
);
$pagination->setUsedRoute('aflam_movie_show');
if($request->isXmlHttpRequest()){
return array('pagination' => $pagination);
}
}
我在按钮中设置路径,如下所示:
{% for videocategory in ['Action','Drama','Comedy','Anime','Adults'] %}
<p class="lead"><a class="{{videocategory}}" href={{path('aflam_movie_show',{category:videocategory})}}">{{videocategory}}</a></p>
{% endfor %}
{%用于[‘动作’、‘戏剧’、‘喜剧’、‘动画’、‘成人’]%中的视频类别]
{%endfor%}
当我点击按钮时,它只显示“正在加载电影…”,有什么问题吗?这是我第一次和symfony打AJAX电话,所以我有点迷路了 查看浏览器的“网络”选项卡,查看您的请求得到了什么响应。我猜是
return array('pagination' => $pagination);
应该是
return new Response(array('pagination' => $pagination));
因为控制器必须返回响应
同时将查询移动到存储库类。这只是完成给定答案的一个重要注意事项 处理AJAX时,除了在“请求”选项卡上使用Symfony profiler外,还必须打开浏览器网络/控制台 i、 e: 通过这样做,在出现错误的情况下,您将能够理解错误,从而能够修复它(给定包含导致问题的文件和行的消息) 在您的情况下,错误肯定与控制器操作中缺少响应有关