2017-06-22 28 views
0

我想知道是否有人可以闡明我的代碼,爲什麼它可能不工作。我用電子包裝器運行nodejs 6+。Javascript電子Sqlite插入

依賴的sqlite的是「sqlite3的」:「^ 3.1.8

我管理列出並沒有問題,但在插件功能或搜索功能,它倒下顯示行中數據,我必須做錯了什麼。

function insertNewVeh() { 
     db.all("INSERT INTO vehicles VALUES ('" + 
     document.getElementById('regNo').value + "','" + 
     document.getElementById('firstName').value + "','" + 
     document.getElementById('lastName').value + 
     "')", function(err, rows) { 
      console.log.msg; 
      }) 
     } 
insertNewVeh(); 


    function srchReg() { 
     var regNo = document.getElementById("regNo").value 
     db.all("SELECT ALL FROM VEHICLES WHERE regNo = " + regNo + ""), function(err, rows) { 
      var reg = document.getElementById("newVehicle").value 
      rows.forEach(function (row) { 
      console.log.msg; 
      document.getElementById('sReg').innerHTML = 
       "<div>Total</div>" 
       }) 
      }; 
     }; 
     srchReg(); 

和功能

function srchDiv() { 
    document.getElementById('rSrch').innerHTML = 
       "<form>" + 
       "<input type=\"search\" id=\regNo\" placeholder=\"What are you looking for?\">" + 
      "<button id=\"subSrch\">Search</button>" + 
       "</form>"; 
    document.getElementById('subSrch').addEventListener("click", function (e) { 
      srchReg(); 
     }); 
} 
srchDiv(); 

window.onload = function addVeh() { 
     document.getElementById('nVeh1').innerHTML = 
     "<form>" + 
       "<div class=\"row\">" + 
        "<label for=\"firstName\" id=\"firstName\">First Name</label>" + 
        "<input id=\"firstName\" name=\"firstName\" type=\"text\"/>" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<label for=\"lastName\" id=\"lastName\">Last Name</label>" + 
        "<input id=\"lastName\" name=\"lastName\" type=\"text\"/>" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<label for=\"address1\" id=\"address1\">Address 1</label>" + 
        "<input id=\"address1\" name=\"address1\" type=\"text\" />" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<label for=\"address2\" id=\"address2\">Address 2</label>" + 
        "<input id=\"address2\" name=\"address2\" type=\"text\"/>" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<label for=\"town\" id=\"town\">Town</label>" + 
        "<input id=\"town\" name=\"town\" type=\"text\"/>" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<label for=\"postcode\" id=\"postcode\">Post Code</label>" + 
        "<input id=\"postcode\" name=\"postcode\" type=\"text\"/>" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<label for=\"telephone\" id=\"telephone\">Telephone</label>" + 
        "<input id=\"telephone\" name=\"telephone\" type=\"tel\"/>" + 
       "</div>"; 
     document.getElementById('nVeh2').innerHTML = 
       "<div class=\"row\">" + 
        "<label for=\"regNo\" id=\"regNo\">regNo</label>" + 
        "<input id=\"regNo\" name=\"regNo\" type=\"text\"/>" + 
       "</div>" + 
       "<div class=\"row\">" + 
        "<button type=\"submit\" value=\"Add\" id=\"addV\"/>Add</button>" + 
       "</div>" + 
       "</form>"; 
     document.getElementById('addV').addEventListener("click", function (e) { 
      insertNewVeh(); 
      }); 
     } 
addVeh(); 

我比較相信這是一個語法錯誤的地方,但不能把它看成我還是新的JAV ascript。在任一功能中,搜索都不起作用,也不會向數據庫中插入任何內容。

+0

有沒有在你的JavaScript控制檯的任何錯誤消息? – rob

+0

不,點擊按鈕時,調用堆棧只是指出:導航到file:///xxx/app/index.html?所以它看起來像它不解析數據。 – Arktix

+0

另一個我稍微修改了一下,它說明了相同的導航到file:///xxx/app/index.html?firstName =&lastName =&address1 =&address2 =&town =&postcode =&telephone =&regNo = asdasd但在這一個數據正在被解析 – Arktix

回答

0

注意「返回false」,因爲你提交一個表單

function insertNewVeh() { 
    const self = this 
    db.serialize(
     function() { 
      let stmnt = db.prepare('INSERT INTO vehicles VALUES (?, ?, ?)') 
      stmnt.run(document.getElementById('regNo').value, document.getElementById('firstName').value, document.getElementById('lastName').value, function() { 
       stmnt.finalize(function() { 
        // Here goes your callback, if you need one 
        // self.doSomeThing() 
       }) 
      }) 
     } 
    ) 
    return false 
} 
+0

我在學習,隨着一點點的試驗和錯誤。我會修改我的功能,看看會發生什麼。 – Arktix