【发布时间】:2014-12-31 21:04:59
【问题描述】:
我有一个名为 $todovalues 的对象和一个表单。我需要通过表单传递整个 todovalues 对象。
我的表单看起来像 -
<form action="" method="post">
<input class="todobuttons" type="submit" name="delete" value="delete">
<input class="todobuttons" type="submit" name="edit" value="edit">
<input type="hidden" name="post_item_info"
value="<?php echo serialize($todovalues); ?>">
</form>
我可以使用 echo $todovalues->text 之类的方式访问 $todovalues 中的值。
我尝试过使用序列化、json_encode 以及两者的混合。但是,当我尝试访问 post 值时,它始终为空。
有没有办法获取我的对象并将其添加到隐藏输入中,而无需为我想要的每个对象创建单独的隐藏输入?
json_encode($todovalues);
json_encode(serialize($todovalues));
serialize($todovalues);
以上都没有功能。是否没有简化的方法来传递整个对象而不先遍历对象?必须为对象中的每个项目创建隐藏输入似乎是浪费空间。
编辑 -
当我使用 json_encode() 时,我看到以下内容,所以我知道它应该存在 -
<input type="hidden" name="post_item_info" value="{" id_auto":"3","id":"1","id_list":"1","completed":"0","incident_notes":"apple"}"="">
【问题讨论】:
-
我会使用
json_encode()。当您查看页面的来源时,该值是否已填充?如果没有,还有另一个问题。 -
您可能应该在您的对象中创建一个方法以将所有相关值作为数组返回,然后您可以使用 json_encode 进行处理。向我们展示类的结构也会有所帮助。请记住,静态成员不会序列化。
-
@JayBlanchard 更新了 json_encode 的内容
-
JSON 看起来有点不完整,但是当你发送它时它应该在
$_POST数组中。对$_POST数组执行print_或var_dump。 -
@JayBlanchard 值内有双引号。所以它正在做的是在 { 之后立即关闭值。我想我需要转义双引号。
标签: php json object serialization