javascript和php使用ajax通信传递JSON的实例(2)

if (isset($_REQUEST['loadResPanel'])) { $bookid=$_REQUEST['loadResPanel']; $sqli=new SQLHelper('ugumanage'); $arr=array(); $arrItems=array(); $arrInfo=array(); $head=urlencode("http://{$_SERVER['HTTP_HOST']}/cloud/"); $sql0="select *from contentsheet where bookid='{$bookid}'"; $res0=$sqli->execute_dql($sql0); while ($row0=$res0->fetch_assoc()) { $catalogid=$row0['catalogid']; $bookid=$row0['bookid']; $title=urlencode($row0['title']); } $sql1="select *from resourcesheet where bookid='{$bookid}'"; $res1=$sqli->execute_dql($sql1); while ($row1=$res1->fetch_assoc()) { $item=array('bookid'=>$row1["bookid"],'res_id'=>$row1['res_id'],'res_name'=>urlencode($row1["res_name"]), 'src_origin'=>$row1["src_origin"],'src_hd'=>$row1["src_hd"],'src_sd'=>$row1["src_sd"],'src_td'=>$row1["src_td"]); array_push($arrItems,$item); } $arrInfo['head']=$head; $arrInfo['catalogid']=$catalogid; $arrInfo['bookid']=$bookid; $arrInfo['title']=$title; $arr['info']=$arrInfo; $arr['items']=$arrItems; $json=urldecode(json_encode($arr)) ; echo $json; $sqli->close_connect(); }

值得注意的是第七行这种,遇到特殊符号或者中文字符,在php端需要将它们统一转码,具体转成了什么,我们不用关心,只需要知道在外面套一个urlencode函数就可以了。创建json同样是使用数组,编制好数组之后,通过json_encode可以直接将其转化为json字符串。这里在返回给客户端之前,仍然需要再使用urldecode解码,这样传递出来的json字符串才不会有乱码现象。

客户端接收到json字符串后同样需要对它进行解析成javascript对象。

var request=$.ajax({url:'SQLHelper.php?loadResPanel='+bookid,async:false}); var jsonStr=request.responseText; var jsonObj=JSON.parse(jsonStr); var info=jsonObj.info; var items=jsonObj.items; document.getElementById('textBox').value=info.title; for (var i=0; i < items.length; i++) { var item=new UploadItemStruct(); item.id=items[i].res_id; item.head=info.head; item.name=items[i].res_name; // item.type=$(this).attr('type'); item.src=items[i].src_origin; item.src_hd=items[i].src_hd; item.src_sd=items[i].src_sd; item.src_td=items[i].src_td; addCellSubThree(document.getElementById("divPanel"),item); };

注意的是第四行。解析json的关键方法是JSON.parse方法,json字符串变成javascript对象之后,便可以任意提取json传递过来的讯息了。

以上这篇javascript和php使用ajax通信传递JSON的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/edbe6374bb81a4c1967926e36e9be5dd.html