Размещение массива в документе php

Я хочу иметь возможность разместить массив, содержащий …

$food = array (
'food_1' => 'ice cream ',
'food_2' => 'pizza'
);

<input type="text" id="in_foods[]" value="<?=$food;?>" />

на другую страницу, но это не похоже на работу. Что я делаю неправильно?

0

Решение

Более чистым решением будет:

1- преобразовать массив в строку с помощью функции implode:

$foods = implode(',',$foods);

2- Поместите его в поле ввода текста для отправки:

<input type="text" id="foods" value="<?=$food;?>" />

3- На другой странице преобразовать строку обратно в массив:

$foods = explode(',',$_POST['foods'])

Пытаться 😉

1

Другие решения

Вы не можете просто опубликовать такую ​​структуру данных. Вы должны получить уведомление о том, что вы пытаетесь преобразовать массив в строку.

Попробуйте вместо этого поместить свой массив в сессию. Таким образом, он остается массивом между вызовами.

session_start();
$_SESSION['food'] = $food;
0

Попробуйте с этим кодом:

<?php
$food = array (
'food_1' => 'ice cream ',
'food_2' => 'pizza'
);
$food = implode(",", $food);
?>
<input type="text" id="in_foods[]" value="<?=$food;?>" />
0

Так как $ food — это массив.

<input type="text" id="in_foods[]" value="<?
if (isset($food)) { echo $food['food_1'].', '.$food['food_2']; } ?>"/>

Если размер массива $ food не определен, то вы можете использовать функцию implode, чтобы сделать его одной строкой и вывести его на экран.

0

Я предполагаю, что вы не хотите отмечать понравившиеся продукты из заранее определенного списка продуктов или чего-то подобного. В этом случае <input type="text"> поле не правильный выбор. использование <input type="checkbox"> вместо (или <select multiple>).

$foodOptions = array('burger', 'vergtables', 'berries')

foreach($foodOptions as $foodOpt) {
$checked = in_array($foodOpt, $foods)?' checked':null;
echo '<input type="checkbox" value="' , $foodOpt , '" name="in_foods[]"', $checked ,'><br>';
}
0
По вопросам рекламы [email protected]