我正在使用ajax的facebook頁面上工作&響應以json格式返回。我已經編碼在PHP中的字符串。現在我想在JavaScript中解碼該字符串。在javascript中解碼通過php編碼的字符串
foreach($feedbackdetails as $feedbackdetail)
{
$str.= '<div class="tweet">
<img style="cursor:pointer;" id="imgVoteUp" src="http://myserver/facebook/vote_up.gif" alt="Vote Up" title="Vote Up" onclick="saveVote('.$feedbackdetail[pk_feedbackid].',1)" /> : '.$feedbackdetail[upvotecount].'
<img style="cursor:pointer;" id="imgVoteDown" src="http://myserver/facebook/vote_down.gif" alt="Vote Down" title="Vote Down" onclick="saveVote('.$feedbackdetail[pk_feedbackid].',0)" /> : '.$feedbackdetail[downvotecount].'
<p class="'.$pclass.'">'.$feedbackdetail[title].' by '.$feedbackdetail[name].'<br>'.$feedbackdetail[description].'</p></div>';
}
$str=urlencode($str);
echo '{"fbml_test":"'.$str.'"}';
JavaScript函數:
功能saveVote(ID,類型,級別) {
contentdiv='div_'+id;
processdiv='processdiv_'+id;
document.getElementById(processdiv).setInnerXHTML('<span id="caric"><center><img src="http://static.ak.fbcdn.net/rsrc.php/z5R48/hash/ejut8v2y.gif" /></center></span>');
posturl='http://myserver/facebook/vote.php';
if(class==0)
{
class='firstmessage';
}
else
{
class='message';
}
var queryString = "?id="+id+"&type="+type+"&pclass="+class;
posturl = posturl +queryString;
ajax = new Ajax();
ajax.responseType = Ajax.JSON;
ajax.requireLogin = true;
ajax.ondone = function(data) {
document.getElementById('caric').setStyle('display','none');
//new Dialog().showMessage('Dialog',data);
if(data.error)
{
new Dialog().showMessage('Dialog',data.error);
}
if(data.fbml_test)
{
document.getElementById(contentdiv).setInnerFBML(data));
}
//div_id.setInnerFBML(data);
}
ajax.post(posturl);
}
現在我得到的編碼字符串,我怎樣才能改變呢?
請幫我在這
感謝
潘卡
你爲什麼在PHP端URL編碼它?也許這樣做echo json_encode(array('fbml_test'=> $ str));代替?在這種情況下,它會自動爲您編碼和解碼。當然,json_encode自PHP 5.2.0起可用 – Priit 2010-01-05 09:06:33