如何将对象传递到php中的隐藏表单中


How do I pass an object into a hidden form in php?

我有一个名为$todovalues的对象和一个表单。我需要通过表单传递整个todovalue对象。

我的表格看起来像-

<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的东西来访问$todoval中的值。

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

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

json_encode((array) $todovalues);

UPD或者,这可能是因为你的html看起来像这样:

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

您可以尝试base64_encode()

json_encode由于我使用双引号创建输入而中断。

系统锯-

value="{"stuffGoesHere"

我改用单引号-

value='"stuffGoesHere"'

它现在运行得很完美。