我有一个名为$ 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"}"="">
答案 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”'
现在完美无缺。