[英]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.