Symfony2 将变量从控制器传递到 javascript
Symfony2 pass variable from controller to javascript
我有这个controller.php
$repository = $this->getDoctrine()->getManager()->getRepository('TechappStatsBundle:ParentForm');
$data = $repository->findBy(array(),array('id' => 'desc'),1,0);
$formulaire = new ParentForm();
$parent= $this->get('form.factory')->create(new ParentFormType(),$formulaire);
if ($parent->handleRequest($request)->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($formulaire);
$em->flush();
}
return $this->render('TechappStatsBundle:Stats:index.html.twig',array("res" => $data,
"parentform"=>$parent->createView(),));
我想用 js 检查我视图中的变量 res
是否等于特定值,但我不知道如何传递它。
如果您想将数据传递给 Javascript,您可以将视图更新为:
- 添加包含数据值的隐藏输入(如果这是一个表单)
- 将数据添加到您使用 CSS
隐藏的 DIV 或 P(或其他)
- 向特定字段添加属性,例如
data-<field>
一旦你得到它,你可以很容易地从jQuery
中获取值。
您可以从控制器传递参数,例如:
return $this->render('TechappStatsBundle:Stats:index.html.twig', array(
"res" => "Your data here"));
并且您可以访问 index.html.twig 中的 "res" 参数,例如:
{% block js %}
<script type="text/javascript">
var res = '{{ res }}';
alert(res);
</script>
{% endblock %}
我的选择总是在 数据值,
中发送
你可以这样做
<div id="res-result" data-res="{{ res }}" style="display: none;">
div不需要隐藏,如果是和div相关的东西我总是放在div相关的里面,即使不隐藏
然后从Jquery:
resValue = $('#res-result').data('res');
将 JS 文件放在 HTML 之外是最干净的方式 IMO
我有这个controller.php
$repository = $this->getDoctrine()->getManager()->getRepository('TechappStatsBundle:ParentForm');
$data = $repository->findBy(array(),array('id' => 'desc'),1,0);
$formulaire = new ParentForm();
$parent= $this->get('form.factory')->create(new ParentFormType(),$formulaire);
if ($parent->handleRequest($request)->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($formulaire);
$em->flush();
}
return $this->render('TechappStatsBundle:Stats:index.html.twig',array("res" => $data,
"parentform"=>$parent->createView(),));
我想用 js 检查我视图中的变量 res
是否等于特定值,但我不知道如何传递它。
如果您想将数据传递给 Javascript,您可以将视图更新为:
- 添加包含数据值的隐藏输入(如果这是一个表单)
- 将数据添加到您使用 CSS 隐藏的 DIV 或 P(或其他)
- 向特定字段添加属性,例如
data-<field>
一旦你得到它,你可以很容易地从jQuery
中获取值。
您可以从控制器传递参数,例如:
return $this->render('TechappStatsBundle:Stats:index.html.twig', array(
"res" => "Your data here"));
并且您可以访问 index.html.twig 中的 "res" 参数,例如:
{% block js %}
<script type="text/javascript">
var res = '{{ res }}';
alert(res);
</script>
{% endblock %}
我的选择总是在 数据值,
中发送你可以这样做
<div id="res-result" data-res="{{ res }}" style="display: none;">
div不需要隐藏,如果是和div相关的东西我总是放在div相关的里面,即使不隐藏
然后从Jquery:
resValue = $('#res-result').data('res');
将 JS 文件放在 HTML 之外是最干净的方式 IMO