我需要(最近)在jquery创建的ajax调用之后从服务器获取一个数组。我知道我可以使用JSON来做到这一点。但我不知道如何使用JQuery实现它(我刚接触JSON)。我尝试在互联网上搜索一些例子,但我没找到它。
这是代码:
// js-jquery function
function changeSponsor() {
$.ajax({
type: 'POST',
cache: false,
url: './auth/ajax.php',
data: 'id=changespon',
success: function(msg) {
// here i need to manage the JSON object i think
}
});
return false;
}
// php-server function
if((isset($_POST['id'])) && ($_POST['id']=="changespon")) {
$linkspon[0]="my ";
$linkspon[1]="name ";
$linkspon[2]="is ";
$linkspon[3]="marco!";
echo $linkspon;
}
实际上,我需要在ajax调用之后获取数组$ linkspon并进行管理。怎么办?我希望这个问题很清楚。感谢
修改
确定。这是我的jquery函数。我添加$ .getJSON函数,但我认为在错误的地方:)
function changeSponsor() {
$.ajax({
type: 'POST',
cache: false,
url: './auth/ajax.php',
data: 'id=changespon',
dataType: 'json',
success: function(data) {
$.getJSON(url, function(data) { alert(data[0]) } );
}
});
return false;
}
答案 0 :(得分:5)
你需要做的两件事。
在你的jQuery .ajax调用中,将dataType设置为'json',以便它知道期望的数据类型。
// JS/jQuery
function changeSponsor() {
$.ajax({
type: 'POST',
cache: false,
url: './auth/ajax.php',
data: 'id=changespon',
dataType: 'json',
success: function(data) {
console.log(data.key); // Outputs "value"
console.log(data.key2); // Outputs "value2"
}
});
return false;
}
// PHP
if((isset($_POST['id'])) && ($_POST['id']=="changespon")) {
$linkspon["key"]= "value";
$linkspon["key2"]= "value2";
echo json_encode($linkspon);
}
答案 1 :(得分:3)
1)PHP:您需要在阵列上使用json_encode。
e.g。
// php-server function
if((isset($_POST['id'])) && ($_POST['id']=="changespon")) {
$linkspon[0]="my ";
$linkspon[1]="name ";
$linkspon[2]="is ";
$linkspon[3]="marco!";
echo json_encode($linkspon);
}
2)JQUERY:
use $.getJSON(url, function(data) { whatever.... } );
数据将以JSON格式传回。在您的情况下,您可以访问数据[0],即“我的”;