在ajax請求中使用json資料格式

來源:互聯網
上載者:User

 

 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函數 


 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.