从 JavaScript 中的 PHP 对象中提取 mySQL 查询结果

Extracting mySQL query result from PHP object in JavaScript

如果之前有人问过这个问题,我深表歉意,但我似乎无法让他们为我工作。 PHP 脚本将数据库结果传递给 JavaScript,如下所示:

$queryResult =  mysqli_query($dbase, $query);

if ($queryResult) {
  $result = array();
  while($row = mysqli_fetch_array($queryResult)) {
      $result[] = $row;
  }
}

echo json_encode($result);

JavaScript 然后通过 AJAX (console.log 的结果):

[{"id":"1","name":"Babe Ruth","loginID":"babe","loginPW":"babe123"}]

我试过JSON.stringify,Object.keys(arr),foreach ($arr as $key => $value), for(i in arr), 但都没有成功.

如何将其读作键值对?

TIA。

我认为您正在寻找 JSON.parse,例如

var user = JSON.parse(response)[0];

// Should print "Babe Ruth"
console.log(user.name);

您复制的内容看起来像一个包含一个对象的 JS 数组。

假设您的数组是 arr 那么:

var obj = arr[0];

console.log(obj.id);

如果您粘贴的实际上是一个字符串,那么您需要使用 var arr = JSON.parse(response); 解析该 JSON 字符串,然后按上述方法继续。

您应该得到响应的索引 0,然后您可以操作您的对象。

var response = [{"id":"1","name":"Babe Ruth","loginID":"babe","loginPW":"babe123"}];
response = response[0];

console.log(response.id);

您的响应是对象数组,您可以使用下一个代码:

var users = JSON.parse(response);

for(var objId in users) {
    // here you can use construction users[objId].your_key

    console.log('id', users[objId].id);
    console.log('name', users[objId].name);
    console.log('loginID', users[objId].loginID);        
    console.log('loginPW', users[objId].loginPW);
}