javascript - 无法访问 symfony 控制器中的 javascript 变量
问题描述
在我的 symfony (v3.4) 项目中,我需要将一些 javascript 变量从我的视图传递到包含表单的控制器:我使用 Jquery 和 Ajax 将我的变量发送到正确的路线,但由于某种原因我无法从我的控制器。
这是我的树枝视图中的脚本部分:
$(".month").click(function() {
var click = $(this);
var month = click.val();
var year = $("#years").val();
var url = "{{ path('av_platform_saisie') }}";
$.ajax(url, {
type: 'POST',
data: {
'month': month,
'year': year
},
success: function(data) {
alert('OK');
},
error: function(jqXHR, textStatus, errorThrown) {}
});
});
我的控制器:
public function saisieAction(Request $request)
{
$user = $this->getUser();
$thisyear = date("Y");
$em = $this->getDoctrine()->getManager();
// Create the form
$form = $this->get('form.factory')->createBuilder(FormType::class)
->add('ndf', CollectionType::class, array(
'entry_type' => NoteDeFraisType::class,
'label' => false,
'allow_add' => true,
'allow_delete' => true,
))
->getForm();
// if the form has been submited
if ($request->isMethod('POST') && $form->handleRequest($request)->isValid()) {
if($request->isXMLHttpRequest()){
$month = $request->get('month');
$year = $request->get('year');
$sub_date = $month .'/' .$year;
}
$notesDeFrais = $form['ndf']->getData();
foreach ($notesDeFrais as $ndf) {
$ndf->setUser($user);
$ndf->setMonth($sub_date);
$em->persist($ndf);
}
$em->flush();
}
return $this->render('AvPlatformBundle:Platform:saisie.html.twig',
array(
'year' => $thisyear, 'form' => $form->createView()
));
}
奇怪的是:我试图从我的控制器未呈现的新 Twig 视图中发送我的 js 变量,并且它使用完全相同的代码工作得很好,所以也许这是正常行为?
编辑:
我做了一些调试,实际上我里面的代码if($request->isXMLHttpRequest())
没有执行
解决方案
您没有使用正确的语法来获取参数,应该是这样的:
if($request->isXMLHttpRequest()) {
$month=$request->request->get('month');
$year=$request->request->get('year');
$sub_date=$month .'/' .$year;
}
如果你想获得GET
参数,那就是:
$request->query->get('get_param');
推荐阅读
- google-api - 如何使用 JWT 访问 Google Androidpublisher API?
- amazon-web-services - 如何在 cloudformation 模板中获取 docker 主机的实例 ID
- php - php substr utf-8 问题
- javascript - Vue.js 中 Select 的异常行为
- c# - 无法将 System.Web.UI.HtmlControls.HtmlInputText 转换为 System.Web.UI.HtmlControls.HtmlGenericControl
- c++ - 编辑默认工具栏时的 Microsoft Visual Studio“未知位图格式”
- c - C 函数指针差异
- python - 如何根据 Python 列表中的文件名将图像文件分类到两个文件夹中?
- r - 向数据框添加新的 col
- postgresql - PostgreSQL 是否有任何列保持表行之间的唯一性,例如 oracle 具有 rowId 和 rowNum?