处理ajax成功响应

时间:2016-11-16 13:43:49

标签: javascript json ajax

PHP:lockState.php

require '../dbconn.php';
$query = mysql_query("select id, lockState,name from register_db where Id=1");
$items = array();
while ($row = mysql_fetch_object($query)) {
    array_push($items, $row);
}
echo json_encode($items);

查询结果

[{"id":"1","lockState":"No","name":"Local Application"}]

的index.php

$.ajax({
            type: "POST",
            url: "feed/lockState.php",
            data: ({id: 1}),
            cache: false,
            dataType:"json",
            success: function (response) {
                alert(JSON.stringify(response));  // [{"id":"1","lockState":"No","name":"Local Application"}]
                alert(response.name); //***undefined***
                  if(response.name=='Local Application'){
                     callMyFunction(response.name);
                   }
          },
            error: function () {
               alert("Oops..!! Something wrong!);

            }
        });

在使用“成功”回应时我做错了,我完全迷失了。即使我尝试JSON.parse(response)并试图访问密钥:值,但仍然是undefined。请帮忙。

3 个答案:

答案 0 :(得分:2)

response[0].name会帮助你。

答案 1 :(得分:2)

看看你的PHP。请参阅创建数组的$items = array();

查看您获得的数据。查看周围的[]

您有一个包含对象的数组。您需要从该数组中读取第一个值。

var object = response[0];
var name = object.name;

答案 2 :(得分:0)

如果响应是:

,您尝试的方式将起作用
{"id":"1","lockState":"No","name":"Local Application"}

但你的回答是:

*[*{"id":"1","lockState":"No","name":"Local Application"}*]*

括号表示响应是一个数组[],包含一个对象{};

正如其他人所说;从数组中检索值的方法可以通过使用array_variable [0]来完成,例如选择第一个。

在你的例子中试试这个:

 alert(response[0].name); //***undefined***