[英]Use returned array from jQuery $.post
我有一個簡單的代碼,可以在數據庫中切換兩個值並將其返回給jQuery,因此我可以為用戶切換它們而無需刷新apge。
問題是,我將其作為數組返回,console.log顯示數組正常,但是我不知道如何從數組中獲取數據。
通過PHP返回:
$data = array($id, $img1, $img2);
echo json_encode($data);
jQuery的:
$.post("bg_images_ajax.php", "switch=yes&id="+id).done(function(data){
$("#image-left-"+id).attr("src", "/images/backgrounds/"+data[1]).attr("alt", data[1]);
$("#image-right-"+id).attr("src", "/images/backgrounds/"+data[2]).attr("alt", data[2]);
console.log(data);
});
data [1]幾乎在我每次使用Ajax時都有效,但是在這里看起來好像將整個返回的數組當作一個簡單的字符串( data [2]返回6 ,這是數組[“ 6”,“ blabla“,” blalablala“]由console.log返回)。
我試圖讓數組返回為:
["id" = "6", "img1" = "blabla", "img2" = "blalablala"]
並使用它來獲取我需要的東西:
data.img1
但這只是返回未定義。
我檢查了有關jQuery.post的頁面http://api.jquery.com/jquery.post/,但是我要么盲目要么就太累了,因為我看不到我在做什么錯。
附言:我也嘗試將響應格式放入jQuery代碼,但是沒有用(因為我不確定在哪里准確放置,嘗試了兩個地方,如此處所示(不同時顯示))。
$.post("bg_images_ajax.php", "switch=yes&id="+id, "json").done(function(data){
$("#image-left-"+id).attr("src", "/images/backgrounds/"+data[1]).attr("alt", data[1]);
$("#image-right-"+id).attr("src", "/images/backgrounds/"+data[2]).attr("alt", data[2]);
console.log(data);
}, "json");
PHP丟失
header("Content-Type: application/json");
並且默認為發送text/html
。
jQuery將結果視為(無效)HTML字符串,而不是將JSON解析為預期的數據結構。
此外,如果要使用對象(具有命名屬性)而不是數組(可以通過數字索引訪問),則必須從PHP中的關聯數組開始:
$data = array("id" => $id, "img1" => $img1, "img2" => $img2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.