我创建了一些表单,其中包含许多select with for
<form action="#" method="POST" id='from_quantity' name="from_quantity">
{% for PanierProduct in PanierProducts %}
<input type="hidden" name="idProduct" value="{{PanierProduct.id}}">
{% for i in 1..eReservation.ereservationmaxquantity %}
<option value="{{ i }}" {% if i == panier[PanierProduct.id] %} selected ="seleted" {% endif %}>{{ i }}
</option>
{% endfor %}
</form>
并且在jquery中我使用此代码发送我的表单并且它的工作非常好
$("#ConfirmQuantity").click(function(){
var url = Routing.generate('front_office', {baseDomaine : baseDomaineJS , _locale: 'en'});alert(data);
$.ajax({
type: "POST",
data: $("#from_quantity").serialize(),
url: url,
success: function (data) {
alert(data);
}
})
;
});
问题新的如何我在控制器中收到这个表格我尝试了很多提案而且没有人在这里工作我希望得到所有表格但它不起作用:
$form = $request->request->get('from_quantity');
$responce = new JsonResponse();
return $responce->setData(array('res' => $form));
答案 0 :(得分:0)
在控制器中
$this->getRequest()->request->all();
在那里你有所有POST变量的数组。
您生成表单时出错。您应该使用数组作为元素名称。
<form action="#" method="POST" id='from_quantity' name="from_quantity">
{% for PanierProduct in PanierProducts %}
<input type="hidden" name="idProduct[]" value="{{PanierProduct.id}}">
{% for i in 1..eReservation.ereservationmaxquantity %}
<option value="{{ i }}" {% if i == panier[PanierProduct.id] %}
selected="seleted" {% endif %}>{{ i }}
</option>
{% endfor %}
</form>
想要获取所有元素时:
$arr = $this->getRequest()->request->all();
foreach($arr as $row) {}
想要获得第一个元素时:
$element = $arr[0];