2010-01-05 71 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