繁体   English   中英

将数组发布到php文档中

[英]Posting an array into a php document

我希望能够发布包含...的数组

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

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

到另一个页面,但似乎无法正常工作。 我究竟做错了什么?

较干净的解决方案是:

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

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

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

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

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

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

尝试;)

因为$ food是一个数组。

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

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

您不能仅仅发布这样的数据结构。 您应该会收到一条通知,说您正在尝试将数组转换为字符串。

考虑将阵列放入会话中。 这样,它就可以作为两次调用之间的数组。

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

我想您不会在预定的食物清单或类似的食物中打勾喜欢的食物。 在这种情况下, <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>';
}

尝试使用以下代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM