从javascript数组中获取一个值

问题描述:

我确定我正在做一些愚蠢的事情,对此的回答非常简单,但是我所做的所有搜索都处理了循环数组,我不想这样做。从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

向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