首先要在 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[s].name);
}
}
}
url = "json.php?timeStamp=" + new Date().getTime();
xmlHttp1.open( "GET" ,url, true );
xmlHttp1.send( null );
//-->
</ script >
上例中我是把数据作为二维数据使用的,在 PHP 中数字键值的数组在 JavaScript 中则表示为数组用 a[i] 的形式访问,字符键值的数组在 JavaScript 中表示为对象,需要用“ . “号来引用成员,用 a.name 的形式。
如果是单个变量就简单了,直接访问就行了。
这里要注意一个中文的问题, php 的 json 函数只能对 utf-8 编码的字符进行编码,如果不是 utf-8 编码相应的字符就会变成 null, 如果 php 文件不是 utf-8 需要加 iconv 函数,包含 JavaScript 文件的编码是什么无所谓,浏览器会进行识别,不用担心 gbk 编码的文件无法接收中文字符