2015-05-17 3 views
0

, поэтому мне нужно отправить массив на другую страницу. Я пытался сделать это с помощью формы:Как отправить массив, используя форму html

<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] [ «ilość»]

На странице «przepisy» Я пытался использовать Этот код:

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

Но это не работает. У кого-нибудь есть идея, как я могу это сделать?

+0

вы обязательно должны должны использовать форму для отправки значения массива? если не обязательно, вы можете использовать сеанс. если u должен использовать форму, используйте функцию цикла, чтобы извлечь все значение массива и поместить его в «скрытое входное значение» – cyan

ответ

2

Это не относится к 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']}} 
+0

Спасибо за помощь :) Я решил сделать это другим способом, я просто использую сейчас в контроллере: return $ this-> render ('MainBundle: Default: przepisy.html.twig', array ( \t \t \t \t \t "sniadanie" => $ sniadanie)); И работает нормально: P – Mateusz

Смежные вопросы