gpt4 book ai didi

javascript - JSON:getElementById 返回未定义

转载 作者:行者123 更新时间:2023-11-30 15:24:49 30 4
gpt4 key购买 nike

我有一个文本输入,我在其中写了一个条形码,它从数据库返回名称和价格。

我的代码是这样的:

查看:

<script>
function showProduct(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
var jsonObject = JSON.stringify(this.responseText);
document.getElementById("nameHint").innerHTML = jsonObject["name"];
document.getElementById("priceHint").innerHTML = jsonObject["price"];
}
};
xmlhttp.open("GET","/getproduct/q="+str,true);
xmlhttp.send();
}
}
</script>
{{ Form::open() }}
{{Form::text('barcode', null, ['onchange'=>"showProduct(this.value)"])}}
<div id="nameHint></div>
<div id="priceHint></div>
{{Form::close}}

Controller :

public function getProduct($id){
ini_set('display_errors', 1);error_reporting(E_ALL);

$sql = DB::select('select * from inventory where barcode = ?', [$id]);
$name = $sql[0]->name;
$price= $sql[0]->price;

echo json_encode(array("name"=>$name, "price"=>$price));
}

当我写条形码时,它显示:undefined 它必须显示名称和价格。我错过了什么?

最佳答案

您有一个 JSON 字符串 (this.responseText),您需要一个 JavaScript 对象 (jsonObject)。你想使用 JSON.parse ,它将 JSON 字符串转换为 JavaScript 对象,而不是 JSON.stringify ,它执行相反的操作,将 JavaScript 对象转换为 JSON 字符串。

var jsonObject =  JSON.parse(this.responseText);
// ^-- here

关于javascript - JSON:getElementById 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43163128/

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