【问题标题】:How to send array using html form如何使用html表单发送数组
【发布时间】:2015-05-17 15:23:09
【问题描述】:

所以我需要将数组发送到其他页面。我试图通过表格来制作它:

<form action="{{ path('_przepisy') }}" method="post">
<input type="hidden" name = "produkty" value = "{{ sniadanie }}">
<input type="submit" class="btn btn-success pull-right" value="Przepisy"/>
</form>

"sniadanie" 是数组,例如:sniadanie[0]['ilosc']

在“przepisy”页面上,我尝试使用此代码:

{% set produkty = app.request.get('produkty') %}
{{produkty[0]['iloscuser']}}

但它不起作用。有人知道我该怎么做吗?

【问题讨论】:

  • 你一定需要使用表单来发送数组值吗?如果不是必须的,你可以使用 session.如果你必须使用表单,请使用循环函数提取所有数组值并将其放入“隐藏输入值”中

标签: arrays forms symfony twig


【解决方案1】:

这不是 Symfony2 特有的。它的基本 HTML。您必须提供具有适当名称的多个输入。您不能在单个输入元素中发送数组值!!那是基本的 HTML!

<form action="{{ path('_przepisy') }}" method="post">
<input type="hidden" name = "produkty[0][iloscuser]" value = "specific-value-from-sniadanie">
<input type="hidden" name = "produkty[1][iloscuser]" value = "specific-value-from-sniadanie">
<input type="hidden" name = "produkty[2][iloscuser]" value = "specific-value-from-sniadanie">
<input type="submit" class="btn btn-success pull-right" value="Przepisy"/>
</form>

但是你可以在单个元素中发送一个 json 字符串。

<form action="{{ path('_przepisy') }}" method="post">
    <input type="hidden" name = "produkty" value = "{{ sniadanie | serialize }}">
    <input type="submit" class="btn btn-success pull-right" value="Przepisy"/>
</form>

然后在控制器中

$this->render("your view", [
    'produkty'  => json_decode($request->get('produkty'))
]);

在模板中

{{produkty[0]['iloscuser']}}

【讨论】:

  • 感谢您的帮助 :) 我决定用其他方式来做,我现在只在控制器中使用:return $this->render('MainBundle:Default:przepisy.html.twig', array( "sniadanie" => $sniadanie));也可以正常工作:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 1970-01-01
  • 2022-01-07
  • 2021-12-10
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多