如何在php中将对象传递给隐藏的表单?

时间:2014-11-04 20:16:42

标签: php json object serialization

我有一个名为$ 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-&gt; text之类的内容访问$ todovalues中的值。

我试过使用serialize,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"}"="">

2 个答案:

答案 0 :(得分:0)

可能,您尝试编码对象。尝试编码数组:

json_encode((array) $todovalues);

UPD。或者,它可能会发生,因为你的HTML看起来像这样:

<input value="{"id":3....}"> (a lot of ")

您可以尝试base64_encode()

答案 1 :(得分:0)

由于我使用双引号创建了输入,因此json_encode崩溃了。

系统看到了 -

  

value =“{”stuffGoesHere“

我切换到单引号 -

  

value ='{“stuffGoesHere”'

现在完美无缺。