1.前端頁面(使用Jquery的getJSON函數,可實現跨域)
說明:html和php頁面都使用gbk編碼
function item(num,username){ var user =encodeURI(username);//在ajax裡中文傳遞要編碼(js使用utf8格式) $.getJSON("getitem.php?callback=?",{ num:num, //注意結尾的逗號,前面是參數名,後面是參數值 user:user }, function callback(json){ var str=""; for(var i=0;i<json.length;i++) alert(decodeURI(json[i].name)+json[i].age);//編碼後的中文傳回來時需要解碼 } ); }
2.後端頁面(php實現)
$callback = $_GET["callback"]; //不可少<br />$num = $_GET["num"];<br />$user=iconv("utf-8","gbk",urldecode($_GET["user"]));//ajax傳過來的user參數要先解碼,再轉碼成gbk</p><p>//我們假設這裡使用$num和$user兩個參數實現了一些商務邏輯,最後產生一個數組表示一些人的姓名和年齡<br />/*$rs=array(<br />array('a'=>'張三','b'=>'21'),<br />array('a'=>'李四','b'=>'22'),<br />array('a'=>'王五','b'=>'23')<br />);*/</p><p>$arr = array();<br />foreach ($rs as $row)<br /> $arr[] = array('name' => urlencode(iconv ('gbk', 'utf-8', $row['a'])),'age' => $row['b']);<br />//此處需要對中文轉碼成uft8格式再編碼,因為ajax請求中json無法識別中文<br />$json = json_encode($arr); //將php數組轉成json格式</p><p>echo $callback . "(" . $json . ")"; //json資料要用()括弧括起來,此段代碼將資訊返回給前端js的callback函數