簡體   English   中英

使用jQuery $ .post返回的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM