/**
* @author kaizhu_Qin
* @copyright http://blog.csdn.net/kaizhu_qin
* @version 2013-12-23
* @latest update 2013-12-23
*/
var a=new Array();
a['name']="admin";
a['password']="admin";
var data='userinfo='+a;
$.ajax({
type:"POST",
url:"login.php",
data:data,
success:function(data){
console.log(data); }
});
這樣通過url傳數組是不成功的。
目前,JSON已經成爲最流行的數據交換格式之一,我們可以嘗試通過JSON 來完成:
下面我們先來了解下JSON:
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。
一、json_encode()
該函數主要用來將數組和對象,轉換爲json格式。先看一個數組轉換的例子:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
//結果爲:
//{"a":1,"b":2,"c":3,"d":4,"e":5}
二、json_decode()$json = '{"a":1,"b":2,"c":3,"d":4,"e":5};
var_dump(json_decode($json));
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
如果想要強制生成PHP關聯數組,json_decode()需要加一個參數true:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json,true));
結果就生成了一個關聯數組:
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
/***************************************************華麗的分割線****************************************************************/同樣的道理,我們反過來應用下:
需要傳遞的數組:
var a = new Array();
a['name']="333";
a['password']="54dfdgf";
//JSON數據形式:
var a='{"username":admin,"password":admin}';
var data='userinfo='+a;
$.ajax({
type:"POST",
url:"login.php",
data:data,
success:function(data){
console.log(data);
}
});
在login.php 文件:
$json=_POST['userinfo'];
print_r((json_decode($json,true)));
//結果:Array ([username] => admin [password] => admin)
這樣我們使用Ajax通過url傳遞的數組就可以在php獲得了。