PHP Json和ajax的使用

json數據格式:php

對象表示爲鍵值對
數據由逗號分隔
花括號保存對象
方括號保存數組
php操做json
json_encode
json_decode
json_encode
json_encode — 對變量進行 JSON 編碼
輸入的value:待編碼的 value ,除了 resource 類型以外,能夠爲任何數據類型,該函數只能接受 UTF-8 編碼的數據。html

當前array爲索引數組jquery

<?php
$arr = array('a','b','c');
$json = json_encode($arr);
echo $json;
 
輸出結果:[「a」,「b」,「c」]ajax

當前array爲關聯數組json

<?php
$arr = array('1001'=>'aa','1002'=>'b','1003'=>'c');
$json = json_encode($arr);
echo $json;
 
輸出結果:{「1001」 : 「aa」,「1002」 : 「b」,「1003」 : 「c」}數組

以上鍵的值爲英文,若是鍵值是英文又會如何呢?緩存

<?php
$arr = array('name'=>'張三','age'=>'20','sex'=>'男');
$json = json_encode($arr);
echo $json;
 
輸出結果:{「name」:"\u5f20\u4e09",「age」:「20」,「sex」:"\u7537"}服務器

顯然,姓名沒有顯示爲張三,爲了解決這個問題,咱們在json_encode函數中引入第二個參數異步

<?php
$arr = array('name'=>'張三','age'=>'20','sex'=>'男');
$json = json_encode($arr,JSON_UNESCAPED_UNICODE);
echo $json;
 
輸出結果:{「name」:「張三」,「age」:「20」,「sex」:「男」}函數

咱們在轉過頭來看json_encode
json_encode
string json_encode ( mixed $value [, int $options = 0 ] ):返回 value 值的 JSON 形式
options :由如下常量組成的二進制掩碼: JSON_HEX_QUOT , JSON_HEX_TAG , JSON_HEX_AMP , JSON_HEX_APOS , JSON_NUMERIC_CHECK , JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , JSON_FORCE_OBJECT , JSON_UNESCAPED_UNICODE .
返回值:編碼成功則返回一個以 JSON 形式表示的 string 或者在失敗時返回 FALSE 。

當前爲二維數組

<?php
$arr[] = array('1001'=>array('name'=>'張三'),'1002'=>'20','sex'=>'1003');
$json = json_encode($arr,JSON_UNESCAPED_UNICODE);
echo $json;
 
輸出結果:[{「1001」:{「name」:「張三」},「1002」:「20」,「sex」:「1003」}]

什麼是ajax(前段技術)
AJAX = 異步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
簡短地說,在不重載整個網頁的狀況下,AJAX 經過後臺加載數據,並在網頁上進行顯示。
jquery中ajax

$.get
$.post
$.ajax
jQuery - AJAX get() 和 post() 方法
jQuery get() 和 post() 方法用於經過 HTTP GET 或 POST 請求從服務器請求數據。
HTTP 請求:GET vs. POST
兩種在客戶端和服務器端進行請求-響應的經常使用方法是:GET 和 POST。
GET - 從指定的資源請求數據
POST - 向指定的資源提交要處理的數據
GET 基本上用於從服務器得到(取回)數據。註釋:GET 方法可能返回緩存數據。
POST 也可用於從服務器獲取數據。不過,POST 方法不會緩存數據,而且經常使用於連同請求一塊兒發送數據。
jQuery $.get() 方法
$.get() 方法經過 HTTP GET 請求從服務器上請求數據。
語法:
$.get(URL,callback);
必需的 URL 參數規定您但願請求的 URL。
可選的 callback 參數是請求成功後所執行的函數名。
實例

$("button").click(function(){
$.get("demo_test.php",function(data,status){
alert("數據: " + data + "\n狀態: " + status);
});
});
 
$.get() 的第一個參數是咱們但願請求的 URL(「demo_test.php」)。
第二個參數是回調函數。第一個回調參數存有被請求頁面的內容,第二個回調參數存有請求的狀態。
提示: 這個 PHP 文件 (「demo_test.php」) 相似這樣:
demo_test.php 文件代碼:

<?php
echo '這是個從PHP文件中讀取的數據。';
?>
 
輸出結果:
注:咱們須要引入jquery文件


JSON和JS對象的轉換:

要實現從對象轉換爲JSON字符串,使用JSON.stringify()方法
要實現從JSON轉換爲對象,使用JSON.parse()方法
jQuery $.post() 方法
$.post() 方法經過 HTTP POST 請求向服務器提交數據。
語法:
$.post(URL,data,callback)
必需的 URL 參數規定您但願請求的 URL。
可選的 data 參數規定連同請求發送的數據。
可選的 callback 參數是請求成功後所執行的函數名。
實例

$("button").click(function(){
$.post("/try/ajax/demo_test_post.php",
{
name:"菜鳥教程",
url:"http://www.runoob.com"
},
function(data,status){
alert("數據: \n" + data + "\n狀態: " + status);
});
});

 
$.post() 的第一個參數是咱們但願請求的 URL (「demo_test_post.php」),而後咱們連同請求(name 和 url)一塊兒發送數據。
「demo_test_post.php」 中的 PHP 腳本讀取這些參數,對它們進行處理,而後返回結果。
第三個參數是回調函數。第一個回調參數存有被請求頁面的內容,而第二個參數存有請求的狀態。
提示: 這個 PHP 文件 (「demo_test_post.php」) 相似這樣:
demo_test_post.php 文件代碼:

<?php
$name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '';
$url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : '';
echo '網站名: ' . $name;
echo "\n";
echo 'URL 地址: ' .$url;
?>
 
輸出結果:

相關文章
相關標籤/搜索