gpt4 book ai didi

Javascript json_encode > JSON.parse() 数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:00:54 25 4
gpt4 key购买 nike

我的 PHP 代码如下:

echo "<img src='../images/edit.png' onclick='showEditDiv(" . json_encode($row) . ");'>";

这是 HTML 结果:

<img src='../images/edit.png' onclick='showEditDiv({"ID":"2","NAME":"John Smith","EMAIL":"johnsmith@domain.com"});'>

这是 Javascript 代码:

function showEditDiv(data) {
alert(data);
data = JSON.parse(data);
alert(data);
for (i=0; i< data.length; i++){
alert(data[i]);
};
}

问题是我没有在 JS 参数中获得所需的数组。第一个警报显示“[object Object]”,仅此而已,不再有警报。问题出在哪里?我的代码基于我在此处找到的示例。我想要的只是将一个数组传递给 JS 函数,它位于一个单独的 .js 文件中。我不想使用 JQuery,更喜欢原生 JS。

最佳答案

您没有将 JSON 传递给函数(JSON 将是一个字符串,因此以引号结尾/开头)。您传递的是 JavaScript 对象文字。查看区别:

对象字面量

{"ID":"2","NAME":"John Smith","EMAIL":"johnsmith@domain.com"}

JSON 字符串

"{\"ID\":\"2\",\"NAME\":\"John Smith\",\"EMAIL\":\"johnsmith@domain.com\"}\"
// or, easier than escaping all those quotes..
'{"ID":"2","NAME":"John Smith","EMAIL":"johnsmith@domain.com"}'

当然,就您的目的而言,对象字面量可能更易于使用。在这种情况下,您只需要从 JavaScript 代码中删除 JSON.parse:

function showEditDiv(data) {
// The below won't work unless you change your input data to a
// JS array literal..
/* for (i=0; i< data.length; i++){
alert(data[i]);
}; */

// ..but you can do this (though it's risky to iterate through keys
// on an object without at least using HasOwnProperty)
for (var key in data) {
alert(data[key]);
}
}

关于Javascript json_encode > JSON.parse() 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20778246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com