我的搜索技巧似乎让我失望了。我有这个php对象,我从一个mysql条目反序列化,并且我想将它作为参数传递给一个javascript函数,因此它可以将该对象与表单中的值进行比较。从我的搜索中收集到的信息,将对象编码为json对象已经成功了,但是当我在变量上执行json_encode时,它只会导致{}
。传递一个PHP对象作为javascript函数的参数
这里是代码中的相关片段:
<?php
$data = new Data();
$data = unserialize(base64_decode($rawdata));//Where $rawdata is the data retrieved from the mysql query.
/* using function such as $data->getName() to retrieve the relevant data */
?>
<form id="myform" action="#" method="post" onsubmit="compareEntry(<?=json_encode($data)?>)">
<!-- Different input and select field initialized with the php data -->
<input type="submit" onclick="compareEntry(<?=json_encode($data)?>)"/>
</form>
<!--<?=json_encode($data)?>-->
我知道PHP的数据正确地从数据库中检索,如在表单中的值都是正确初始化。只有在最后的html评论中,我才知道我有一个空的json对象。
这里是什么print_r($data)
返回(编辑敏感信息)的一个例子:
(
[m_path:private] =>
[m_version:private] => REL_54
[m_bugs:private] => Array
*RECURSION*
[m_targets:private] => Array
*RECURSION*
[m_symptoms:private] => Array
*RECURSION*
[m_exception:private] => Array
*RECURSION*
[m_instruction:private] => Array
*RECURSION*
[m_sources:private] => Array
*RECURSION*
[m_risks:private] => Array
*RECURSION*
[m_test:private] => Array
*RECURSION*
[m_contact:private] => Array
*RECURSION*
)
1
难道我做错了什么?编码为JSON在我的方案中正确的方法?
'print_r($ data)`结果是什么? – 2010-11-24 10:10:07
@Pekka,我用print_r结果编辑了我的问题。 – Eldros 2010-11-24 10:18:49