2013-11-12 3 views
1

На моей странице у меня есть многомерный массив, который мне нужно передать на другую страницу, и с этой страницы я собираюсь отправить массив на контроллер. Массив всегда будет скрыт, чтобы упростить форму.
Я искал немного, но не нашел ответа на мой вопрос. Так выглядит этаОтправить существующий многомерный массив через POST

<form action="index.php?route=common/fittingForm" method="post"> 
    <?php foreach($products as $product) { ?> 
     <input type="hidden" name="products[]" value="<?php echo $product; ?>" > 
    <?php } ?> 
    <input type="submit" value="Buy" class="buy_button"> 
</form> 

И страница, которая получает массив выглядит следующим образом

<?php $products = $_POST["products"]; ?> 
<?php 
    foreach($products as $product) 
     echo $product['model']; 
?> 

И, конечно, все не работает. И я не знаю, почему. Благодарим за внимание.

+0

другая страница для меня означает отдельный запрос. в вашей ситуации все в рамках одной и той же просьбы? – gwillie

+0

Ну, я передаю массив на первую страницу (1 запрос), с первой страницы я посылаю массив контроллеру. Итак, два запроса. Извините, если я не понял ваш вопрос, мой английский не безупречен. – eoLithic

+0

хорошо, если это 2 или более запросов, то есть перенаправление, тогда вы должны хранить массив где-то вроде '$ _SESSION', db или файла. – gwillie

ответ

2

Encode его JSON прежде чем отправить его:

<form action="index.php?route=common/fittingForm" method="post"> 
     <input type="hidden" name="products" value="<?php echo json_encode($products);?>"> 
    <input type="submit" value="Buy" class="buy_button"> 
</form> 

и декодировать:

<?php 
$products = json_decode($_POST["products"]); 
    foreach($products as $product) 
     echo $product['model']; 
?> 
+0

Я получаю сообщение об ошибке после нажатия кнопки «Предупреждение: неверный аргумент, предоставленный foreach() в C: \ apache \ localhost \ www \ webshop.kg \ catalog \ view \ theme \ default \ template \ common \ fittingForm.tpl on строка 3 ". Любая идея, как это решить? – eoLithic

+0

OH жаль, что я забыл заметить, что вы его расшифровали до ... Я обновил свой ответ –

+0

Все еще не работает :(Такая же ошибка снова. – eoLithic

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