首先要在php中把要发送给客户端的数据用json编码
<?php
header("Content-Type: text/html;charset=GBK");
$a=array(array('name'=>iconv('GBK','UTF-8','何涛'),'ip'=>'192.168.0.8','rate'=>'180KB/s')
,array('name'=>'eth1','ip'=>'192.168.0.5','rate'=>'200KB/s'));
echo json_encode($a);
?>
然后是客户端的处理
<script type="text/javascript">
<!--
if(window.ActiveXObject)
xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP"); //兼容IE浏览器
else if(window.XMLHttpRequest)
xmlHttp1=new XMLHttpRequest(); //兼容Firefox浏览器
xmlHttp1.onreadystatechange=function()
{
if(xmlHttp1.readyState==4&&xmlHttp1.status==200)
{
//alert(xmlHttp1.responseText)
state=eval('(' +xmlHttp1.responseText + ')');
for(s in state)
{
alert(state.name);
}
}
}
url = "json.php?timeStamp=" + new Date().getTime();
xmlHttp1.open("GET",url,true);
xmlHttp1.send(null);
//-->
</script>
上例中我是把数据作为二维数据使用的,在PHP中数字键值的数组在JavaScript中则表示为数组用a的形式访问,字符键值的数组在JavaScript中表示为对象,需要用“.“号来引用成员,用a.name的形式。
如果是单个变量就简单了,直接访问就行了。
这里要注意一个中文的问题,php的json函数只能对utf-8编码的字符进行编码,如果不是utf-8编码相应的字符就会变成null,如果php文件不是utf-8需要加iconv函数,包含JavaScript文件的编码是什么无所谓,浏览器会进行识别,不用担心gbk编码的文件无法接收中文字符 |