2014-10-19 103 views
0

我確定我正在做一些愚蠢的事情,對此的回答非常簡單,但是我所做的所有搜索都處理了循環數組,我不想這樣做。從javascript數組中獲取一個值

我有一個ajax調用返回一個非常簡單的數組形式的響應。在我的ajax調用的成功函數中,如果我這樣做:

console.log(response); 

數組按預期記錄到控制檯。 [0] => 100,[1] => 200等

如果我嘗試:

console.log(response[1]); 

我期待着得到200,但它什麼都不做。我最終想要的值插入這樣的重定向...

window.location.replace('index.php?id=200'); 

但我得到的是「的index.php?ID =」

請有人把我從我的痛苦。我究竟做錯了什麼?

編輯:

改變了PHP以包括以下內容:

exit(json_encode("id"=>$id,"message"=>$message)); 

其返回的對象(未字符串)。

然後在AJAX功能的成功部分:

success: function(response) { 
window.location.replace('index.php?id=' + response.id + '&message=' + response.message); 
} 

這...出於某種原因,工作正常。不要問我爲什麼。

+0

也許你的回答是一個字符串? – Duniyadnd 2014-10-19 23:27:47

+1

PHP和JavaScript數組並不相同。您將在發送迴應時使用[json_encode](http://php.net/manual/en/function.json-encode.php) – Lbatson 2014-10-19 23:29:02

+0

您可以發佈更多代碼或JSFiddle嗎? – gpojd 2014-10-19 23:30:52

回答

0

向JSON發送和從PHP/Javascript發送信息的最簡單方法是使用JSON。您可以使用json_encode()將您的數組轉換爲JSON字符串。然後在Javascript中使用JSON.parse()將字符串變成對象。

如果您使用jQuery作爲AJAX請求並且沒有設置dataType,它會自動檢測到它是JSON併爲您解析,這可能是您不必這樣做的原因。

+0

謝謝Evilzebra(酷手柄btw)。我使用jQuery的Ajax請求,我確實有dataType設置,所以不知道發生了什麼。無論如何,它現在正在工作。 – Barbs 2014-10-20 03:08:50