我的搜索技巧似乎讓我失望了。我有這個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