2015-09-22 3 views
0

Я пытаюсь создать функцию, которая выбирает данные из базы данных на стороне сервера и устанавливает ее как значение текстового поля на стороне клиента. Он отлично работает на стороне сервера, но на стороне клиента, если я предупреждаю данные, он показывает [oject Object], а для data.id он показывает undefined, и я не могу понять, почему. Большое спасибо !Данные JSON не отображают правильную информацию

стороне сервера:

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); 
        } 

       }); 
      } 
+0

Каковы данные ответа в вашем браузере devtools? Вы должны уметь видеть структуру там. – Starscream1984

+0

Если вы «предупреждаете» об объекте, он всегда будет показывать '[object]' - использовать 'console.log (data)' или (лучше) 'console.dir (data)' –

+0

его лучше перейти к документации и проверьте документы для решения. – Jai

ответ

2

Ситуация здесь является то, что два data отличаются друг от друга.

//input for ajax page 
data : { 
    id: id 
} 

и

//output from ajax page 
success:function(data) 

Первого значение принято url: '/id' второй обозначает значение, возвращенное от сервера в результате вызова AJAX.

Это означает, что вы можете указать любое имя для аргумента функции, например success:function(value).

+0

Если я положил значение beetwen brackets, он показывает 'object HTMLInputElement]'. – Ezekiel

+0

@Ezekiel, что вы получаете в функции успеха - это возврат с сервера. – RRK

+0

Все столбцы из базы данных в строке с идентификатором: '[{ID: 10, данные: '', кВт: '11', nr_articol: '279630-99', PROIECT: 'AUHE', оптика: '2037', электрическая: '', reelectric: '', СМД: 'на', scurt_smd: '1', incomplete_smd: '', желчи: ''}] ' – Ezekiel

0

Когда вы получаете эти данные вместо предупреждения, используйте console.log (данные). и еще одна вещь, если вы хотите, чтобы у вас был этот идентификатор или нет. просто передайте эти данные в виде JSON.stringify (data). И распечатайте эти данные, используя консольный журнал. И посмотрите, что он содержит. Тогда вы легко сможете решить свою проблему.

+0

Я сделал это. И он говорит 'undefined'. – Ezekiel

+0

что вы сделали, Будьте понятны, вы передаете эти данные, такие как console.log (JSON.stringify (data)); Если ваши данные поступают в виде объекта, тогда вы можете проверить или распечатать в консоли, каковы поля, в которых находится ваш объект. console.log (JSON.stringify (данные)); и зайдите в консоль инструментов разработчика, что вы получаете. @ Ezekiel –

+0

И если ваши данные поступают как String, тогда вы должны сформировать это значение как Object, используя var dataObject = JSON.parse (data); , а затем использовать var id = dataObject.id; Надеюсь, что это сработает. @Ezekiel –

Смежные вопросы