W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
JSON和XML沒什么太大區(qū)別,不過JSON有一個更大范圍的應用,那就是,跨域的數(shù)據(jù)調(diào)用。由于安全性問題,AJAX不支持跨域調(diào)用,這樣要調(diào)用不同域名下的數(shù)據(jù),很麻煩。下面這個例子,足以展示php用json如何進跨域調(diào)用了。
index.html
<script type="text/javascript"> function getProfile(str) { var arr = str; document.getElementById('nick').innerHTML = arr.nick; } </script> <body>
<div id="nick"></div>
</body> <script type="text/javascript" src="http://www.openphp.cn/demo/profile.php" rel="external nofollow" ></script>
<?php
$arr = array(
'name' => 'tanteng',
'nick' => 'pony',
'contact' => array(
'email' => 'a@gmail.com',
'website' => 'http://aa.sinaapp.com',
)
);
$json_string = json_encode($arr);
echo "getProfile($json_string)";
?>
當index.html調(diào)用profile.php時,JSON字符串生成,并作為參數(shù)傳入getProfile,然后將昵稱插入到div中,這樣一次跨域數(shù)據(jù)交互就完成了,是不是特別簡單。
PHP json格式和js json格式 js跨域調(diào)用實現(xiàn)代碼
先看一個js函數(shù)
function jsontest()
{
var json = [{'username':'crystal','userage':'20'},{'username':'candy','userage':'24'}];
alert(json[1].username);
var json2 = [['crystal','20'],['candy','24']];
alert(json2[0][0]);
}
$arr = array (
array (
'catid' => '4',
'catname' => '程程',
'meta_title' => '程程博客'
),
array (
'catid' => '6',
'catname' => 'climber',
'meta_title' => '攀登者',
)
);
$jsonstr = json_encode($arr);
echo $jsonstr;
這段代碼中,$arr是一個數(shù)組,我們采用 json_encode 將$arr 轉(zhuǎn)換為了 json 格式 。 $arr = array (
array (
'catid' => '4',
'catname' => '程程',
'meta_title' => '程程博客'
),
array (
'catid' => '6',
'catname' => 'climber',
'meta_title' => '攀登者',
)
);
$jsonstr = json_encode($arr);
我們再建立一個 json.html 文件
<SCRIPT type=text/javascript src="php_json.php"></SCRIPT>
<SCRIPT language=javascript type=text/javascript>
function loadjson(_json)
{
if(_json)
{
for(var i=0;i<_json.length;i++)
{
alert(_json[i].catname);
}
}
}
loadjson(jsonstr)
</SCRIPT>
這樣,我們在查看 json.html的時候,loadjson(jsonstr) 就會 提示 “程程”和“climber” Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: