нулевое значение при вставке данных в базу данных - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над электронным приложением для школы. Когда я хочу вставить данные в мою базу данных sqlite с помощью nodejs, она заполняет базу данных нулевыми значениями. Я получаю данные из входного значения.

образ базы данных: https://i.imgur.com/N9dUmBQ.png

Вот мой код:

<!DOCTYPE html>
<html>
  <head>
    <title>Tableau de patient</title>
    <link rel="stylesheet" href="index.css">
  </head>
  <body>
    <h1>Ajouter un patient</h1>
    <input type="text" name="nom" placeholder="nom" id="lastname">
    <input type="text" name="prenom" placeholder="prenom" id="name">
    <br>
    <input type="text" name="age" placeholder="age" id="year">
    <input type="text" name="sexe" placeholder="sexe" id="genre">
    <br>
    <button type="button" name="sendData" id="send">Creer</button>
    <script>
    const sqlite3 = require('sqlite3').verbose();

    // open the database
    let db = new sqlite3.Database('./database.db', sqlite3.OPEN_READWRITE, (err) => {
    if (err) {
      console.error(err.message);
    }
    console.log('Connected to the database.');
    });

      var Inom = document.querySelector('#lastname').value;
      var Iprenom = document.querySelector('#name').value;
      var Iage = document.querySelector('#year').value;
      var Isexe = document.querySelector('#genre').value;

      var parameters = [Inom, Iprenom, Iage, Isexe];
      var sql = 'INSERT INTO patient(nom, prenom, age, sexe) VALUES (?, ?, ?, ?)';

      var btn = document.getElementById("send")
      btn.addEventListener('click', function(){
        console.log("ok")
        db.run(sql, [parameters],function(err) {
          if (err) {
            console.error(err.message);
          }
        })
        db.close((err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('Close the database connection.');
        });
      })
    </script>
  </body>
</html>

Не знаю, где проблемаиз. Спасибо за помощь:)

1 Ответ

1 голос
/ 17 октября 2019

Dred, Ваше значение querySelector находится за пределами кликвент. Вы не можете получить доступ к элементам во время загрузки страницы. Поместите свой блок в событие клика

  var btn = document.getElementById("send")
  btn.addEventListener('click', function(){
    var Inom = document.querySelector('#lastname').value;
    var Iprenom = document.querySelector('#name').value;
    var Iage = document.querySelector('#year').value;
    var Isexe = document.querySelector('#genre').value;

    var parameters = [Inom, Iprenom, Iage, Isexe];
    var sql = 'INSERT INTO patient(nom, prenom, age, sexe) VALUES (?, ?, ?, ?)';
    console.log("ok")
    db.run(sql, [parameters],function(err) {
      if (err) {
        console.error(err.message);
      }
    })
    db.close((err) => {
    if (err) {
      console.error(err.message);
    }
    console.log('Close the database connection.');
    });
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...