2010-01-05 103 views
0

我正在使用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); 

}

現在我得到的編碼字符串,我怎樣才能改變呢?

請幫我在這

感謝

潘卡

+1

你爲什麼在PHP端URL編碼它?也許這樣做echo json_encode(array('fbml_test'=> $ str));代替?在這種情況下,它會自動爲您編碼和解碼。當然,json_encode自PHP 5.2.0起可用 – Priit 2010-01-05 09:06:33

回答

0

如果該字符串url編碼然後JavaScript有encodeURIdecodeURI功能:

decodeURI(urlencoded_string); 
+0

此函數對特殊字符進行編碼,除了:,/? :@&= + $#(使用encodeURIComponent()來編碼這些字符)。 – 2010-01-05 09:23:35

+0

編碼是由PHP中的OP完成的。 – slebetman 2010-01-05 09:54:58