我正在创建eisenhover矩阵,我想要一个按钮来刷新网格中的数据,但我不知道如何使用ajax传递参数/变量。
/**
* @Route("/articles/list", name="articles_list")
*/
public function showArticlesAction(bool $important = false, bool $urgent = false){
$articles = $this->returnAllArticles();
return $this->render(
'articles/list.html.twig',
array('articles' => $articles,
'important' => $important,
'urgent' => $urgent)
);
}
和脚本
function refreshFunctionName()
{
$.ajax({
type: "POST",
url: "{{ path('articles_list') }}",
data: {'important': true, 'urgent': true},
cache: false,
success: function(data){
$('#list').html(data);
},
error: function(){},
complete: function(){}
});
}
如果我尝试将它与ajax一起使用,showArticlesAction总是采用默认数据,可以正常使用:
{{ render(controller(
'AppBundle:Articles:showArticles',
{ 'important': true,
'urgent': true}
)) }}
答案 0 :(得分:1)
您需要在路线定义中定义这些参数:
/**
* @Route("/articles/list/{important}/{urgent}", name="articles_list")
*/
你在AJAX调用中获取GET方法或从POST表中获取这些参数
/**
* @Route("/articles/list", name="articles_list")
*/
public function showArticlesAction(Request $request){
$articles = $this->returnAllArticles();
$important = $request->request->get('important');
$urgent = $request->request->get('urgent');
return $this->render(
'articles/list.html.twig',
array('articles' => $articles,
'important' => $important,
'urgent' => $urgent)
);
}