Javascript JSON数据未显示正确的信息
我试图创建一个函数,在服务器端从数据库中选择数据,并在客户端将其设置为textbox的值。它在服务器端工作正常,但在客户端,如果我提醒数据,它会显示Javascript JSON数据未显示正确的信息,javascript,jquery,json,node.js,Javascript,Jquery,Json,Node.js,我试图创建一个函数,在服务器端从数据库中选择数据,并在客户端将其设置为textbox的值。它在服务器端工作正常,但在客户端,如果我提醒数据,它会显示[Project Object],而对于data.id,它会显示未定义的,我不知道为什么。非常感谢 服务器端: app.post('/id', function(req,res) { var data = req.body; var id = data.id; console.log(id); var query =
[Project Object]
,而对于data.id,它会显示未定义的
,我不知道为什么。非常感谢
服务器端:
app.post('/id', function(req,res) {
var data = req.body;
var id = data.id;
console.log(id);
var query = "SELECT * FROM Control WHERE id=" +id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
客户端:
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
data: JSON.stringify(data),
dataType: 'json',
url: '/id',
data : {
id: id
},
success : function(data){
alert(data);
var id = data.id;
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
这里的情况是,这两个
数据
彼此不同
//input for ajax page
data : {
id: id
}
及
第一个是通过url:'/id'
传递的值,第二个表示AJAX调用从服务器返回的值
这意味着,当您获取这些数据时,可以为函数参数指定任何名称,如
success:function(value)
,而不是使用alert-use-console.log(data)。
还有一件事,如果你想知道你是否反对拥有这个id
只需将这些数据作为JSON.stringify(数据)传递,并使用控制台日志打印这些数据,然后查看其中包含的内容。
然后您就可以轻松地解决问题。在浏览器开发工具中,响应数据是什么样子的?你应该能够看到那里的结构。如果你对一个对象发出
警报
,它将始终显示[对象]
-使用控制台.log(数据)
或(更好的)控制台.dir(数据)
最好转到文档并检查文档以寻求解决方案。如果我把值放在括号中,它显示对象HTMLInputElement]
@Ezekiel您在成功函数中得到的是来自服务器的返回。该行中数据库中id为的所有列:[{id:10,数据:'',功率:'11',编号:'279630-99',项目:'AUHE',光学:'2037',电气:'',再电气:'',smd:'on',scurt_smd:'1',不完整的smd:'',胆汁:'}]
@Ezekiel do console.log(数据)在success函数中,检查开发人员工具控制台以查看输出。返回的是一个数组?如果是,则正确的将是var id=data[0].id;
。我这样做了。它说undefined
。您所做的是,清除意味着您像这个控制台一样传递这些数据。log(JSON.stringify(data));如果您的数据是作为对象提供的,那么这就是您可以在console中检查或打印的方式,您的对象包含哪些字段。console.log(JSON.stringify(data));并在开发人员工具控制台中检查您所得到的。@EzekielAnd如果您的数据是以字符串形式出现的,那么您必须使用var-dataObject=JSON.parse(data)将该值作为对象形成;然后使用var-id=dataObject.id;希望这能起作用。@Ezekiel
//output from ajax page
success:function(data)