我已经在互联网上寻找一种可以实现我需要的工作方法,但到目前为止没有运气。
基本上,我有一个运行数据库查询的AJAX请求,并将所有内容回显到json_encode函数doo-dah - > echo json_encode($row);
现在,这会传回我的Javascript,这就是我被困的地方。我需要访问JSON数组并选择各种部分来动态地改变输入字段值。这是我必须运行AJAX请求并检索JSON数组的代码。
var vars = new XMLHttpRequest();
vars.onload = function() {
var retrieved = new Array(this.responseText);
document.getElementById("testingOutput").innerHTML = retrieved;
};
vars.open("GET", "https://my.url.here", true);
vars.send();
以下是我尝试过但没有成功的事情(JS的新手......)
var forename = retrieved['first_name']; // Didn't work
var forename = retrieved[1]; // Didn't work either
我也试过' for'循环,它们还没有工作(找不到我复制的例子..)。我最初试图将检索到的var设置为(this.responseText)
而没有运气。我真的需要一种方法,我可以拉出数组的一部分,以坚持下面的一些jQuery:
$("#firstname").val = forename;
$("#lastname").val = surname;
(其中' forename'和'姓氏'是来自数组的js变量..)
任何帮助都会受到赞赏,因为我正在失去理智!!
编辑:当我刚刚使用var retrieved = (this.responseText);
时,当我使用typeof
时,它说该类型是一个字符串.. var retrieved = new Array(this.responseText)
返回一个对象..我不知道如何访问它们。
答案 0 :(得分:3)
看起来您正在发送 JSON ,因此您需要在 JavaScript 中解析 JSON 以使其成为原生对象
var retrieved = JSON.parse(this.responseText);
您可以阅读有关JSON.parse
here
作为suggested by kiltek,在调试时使用console.log
或console.dir
也是一个好主意,这样您就可以查看正在使用的数据结构