Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON数据未显示正确的信息_Javascript_Jquery_Json_Node.js - Fatal编程技术网

Javascript JSON数据未显示正确的信息

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 =

我试图创建一个函数,在服务器端从数据库中选择数据,并在客户端将其设置为textbox的值。它在服务器端工作正常,但在客户端,如果我提醒数据,它会显示
[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)