将数组发布到php文档中

时间:2014-09-30 12:15:42

标签: php arrays posting

我希望能够发布一个包含...

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

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

到另一个页面,但它似乎没有工作。我做错了什么?

5 个答案:

答案 0 :(得分:1)

更清洁的解决方案是:

1-使用implode函数将数组转换为字符串:

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

2-将其放在要提交的输入文本字段中:

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

3-在另一页上将字符串转换回数组:

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

尝试;)

答案 1 :(得分:0)

因为$ food是一个数组。

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

如果未定义$ food数组的大小,则可以使用implode函数将其作为单个字符串进行回显。

答案 2 :(得分:0)

您无法发布类似的数据结构。您应该收到通知,说您正在尝试将数组转换为字符串。

考虑将数组放入会话中。这样它就会在调用之间保持一个数组。

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

答案 3 :(得分: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>';
}

答案 4 :(得分:0)

尝试使用此代码:

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