Javascript //测试以确保用户已输入品牌和型号 如果(Fname!==“”&&Lname!==“”&&Country!==“”){ //将用户输入的详细信息插入cars表,注意?占位符的使用,这些将被作为第二个参数作为数组传入的数据替换 mydb.transactio

Javascript //测试以确保用户已输入品牌和型号 如果(Fname!==“”&&Lname!==“”&&Country!==“”){ //将用户输入的详细信息插入cars表,注意?占位符的使用,这些将被作为第二个参数作为数组传入的数据替换 mydb.transactio,javascript,html,sql,web-sql,Javascript,Html,Sql,Web Sql,//测试以确保用户已输入品牌和型号 如果(Fname!==“”&&Lname!==“”&&Country!==“”){ //将用户输入的详细信息插入cars表,注意?占位符的使用,这些将被作为第二个参数作为数组传入的数据替换 mydb.transaction(函数(t){ t、 executeSql(“插入mydb(Fname,Lname,Country)值(?,,?)”,[Fname,Lname,Country]); outputDrafts(); }); }否则{ 警报(“您必须输入品牌和型

//测试以确保用户已输入品牌和型号 如果(Fname!==“”&&Lname!==“”&&Country!==“”){ //将用户输入的详细信息插入cars表,注意?占位符的使用,这些将被作为第二个参数作为数组传入的数据替换 mydb.transaction(函数(t){ t、 executeSql(“插入mydb(Fname,Lname,Country)值(?,,?)”,[Fname,Lname,Country]); outputDrafts(); }); }否则{ 警报(“您必须输入品牌和型号!”); } }否则{ 警报(“未找到数据库,您的浏览器不支持web sql!”); } } //函数从数据库中删除汽车,将行id作为其唯一参数传递 函数删除草稿(id){ //检查以确保已创建mydb对象 如果(mydb){ //使用select语句从数据库中获取所有汽车,将outputCarList设置为executeSql命令的回调函数 mydb.transaction(函数(t){ t、 executeSql(“从mydb中删除,其中id=?,[id],outputDrafts”); }); }否则{ 警报(“未找到数据库,您的浏览器不支持web sql!”); } } outputDrafts(); var link=document.getElementById(“addcar”); link.onclick=function(){alert(1) 添加草稿(); };
console.log中出现以下错误:未捕获引用错误:第120行未定义addDraft。
<div id="controls">
<p>Save drafts to the database</p>
<label>First Name: </label><input type="text" id="Fname" /><br />
<label>Last Name: </label><input type="text" id="Lname" /><br />
 <label>Country: </label><input type="text" id="Country" /><br />
<button type="button" id="addDraft" onclick="addDraft();">Save as draft</button>
</div>
<div id="listholder">
<h3>Your saved drafts</h3>
<ul id="drafts">
</ul>
</div>
if (window.openDatabase){
    //Create the database the parameters are 1. the database name 2.version number 3. a description 4. the size of the database (in bytes) 1024 x 1024 = 1MB
    var mydb = openDatabase("Testdb", "0.1", "Testing  Database", 1024 * 1024);

     //create the  table using SQL for the database using a transaction
     mydb.transaction(function(t){
         t.executeSql("CREATE TABLE IF NOT EXISTS mydb (id INTEGER PRIMARY KEY, Fname VARCHAR(50), Lname VARCHAR(50), Country VARCHAR(100))");
});

}else{
alert("WebSQL is not supported by your browser!");
}


//function to output to the database
function updateDrafts(transaction, results){
//initialise the listitems variable
var listitems = "";
//get the list holder ul
var listholder = document.getElementById("drafts");

//clear the list of drafts ul
listholder.innerHTML = "";

var i;
//Iterate through the results
 for (i = 0; i < results.rows.length; i++) {
    //Get the current row from database
    var row = results.rows.item(i);

    listholder.innerHTML += "<li>" + row.Fname + " - " + row.Lname + " - " + row.Country + "(<a href='javascript:void(0);' onclick='deleteDraft(" + row.id + ");'>Delete Draft</a>)";
}
}

//function to get the list from the database

function outputDrafts() {
//check to ensure the mydb object has been created
if (mydb) {
    //Get all the data from the database with a select statement, set outputCarList as the callback    function for the executeSql command
    mydb.transaction(function(t) {
        t.executeSql("SELECT * FROM mydb", [], updateDrafts);
    });
} else {
    alert("db not found, your browser does not support web sql!");
}
}
//function to add to the database

function addDraft() {
//check to ensure the mydb object has been created
if (mydb) {
    //get the values of text inputs
    var Fname= document.getElementById("Fname").value;
    var Lname= document.getElementById("Lname").value;
    var Country = document.getElementById("Country").value;


    //Test to ensure that the fields are not empty
    if (Fname !== "" && Lname !== "" && Country !== "") {
        //Insert the user entered details into the  table, note the use of the ? placeholder, these    will replaced by the data passed in as an array as the second parameter
        mydb.transaction(function(t) {
            t.executeSql("INSERT INTO mydb (Fname, Lname, Country) VALUES (?, ?, ?)", [Fname, Lname, Country]);
            outputDrafts();
        });
    } else {
        alert("You must enter your first name, last name and country!");
    }
} else {
    alert("db not found, your browser does not support web sql!");
}
}
//function to remove  from the database, passed the row id as it's only parameter

function deleteDraft(id) {
//check to ensure the mydb object has been created
if (mydb) {

    mydb.transaction(function(t) {
        t.executeSql("DELETE FROM mydb WHERE id=?", [id], outputDrafts);
    });
} else {
    alert("db not found, your browser does not support web sql!");
}
}

outputDrafts();
//HTML
<div id="controls">
  <p>Save drafts to the database</p>
  <label>First Name: </label>
  <input type="text" id="Fname" />
  <br />
  <label>Last Name: </label>
  <input type="text" id="Lname" />
  <br />
  <label>Country: </label>
  <input type="text" id="Country" />
  <br />
  <button type="button" id="addcar">Save as draft</button>
</div>
<div id="listholder">
  <h3>Your saved drafts</h3>
  <ul id="drafts">
  </ul>
</div>


//Js
 var mydb = openDatabase("Testdb", "0.1", "Testing  Database", 1024 * 1024);
if (window.openDatabase) {
  //Create the database the parameters are 1. the database name 2.version number 3. a description 4. the size of the database (in bytes) 1024 x 1024 = 1MB


  //create the  table using SQL for the database using a transaction
  mydb.transaction(function(t) {
    t.executeSql("CREATE TABLE IF NOT EXISTS mydb (id INTEGER PRIMARY KEY, Fname VARCHAR(50), Lname VARCHAR(50), Country VARCHAR(100))");
  });

} else {
  alert("WebSQL is not supported by your browser!");
}


//function to output the list of cars in the database
function updateDrafts(transaction, results) {
  //initialise the listitems variable
  var listitems = "";
  //get the list holder ul
  var listholder = document.getElementById("drafts");

  //clear the list of drafts ul
  listholder.innerHTML = "";

  var i;
  //Iterate through the results
  for (i = 0; i < results.rows.length; i++) {
    //Get the current row from database
    var row = results.rows.item(i);

    listholder.innerHTML += "<li>" + row.Fname + " - " + row.Lname + " - " + row.Country + "(<a href='javascript:void(0);' onclick='deleteDraft(" + row.id + ");'>Delete Draft</a>)";
  }
}

//function to get the list of cars from the database

function outputDrafts() {
  //check to ensure the mydb object has been created
  if (mydb) {
    //Get all the cars from the database with a select statement, set outputCarList as the callback function for the executeSql command
    mydb.transaction(function(t) {
      t.executeSql("SELECT * FROM mydb", [], updateDrafts);
    });
  } else {
    alert("db not found, your browser does not support web sql!");
  }
}
//function to add the car to the database

function addDraft() {
  //check to ensure the mydb object has been created
  if (mydb) {
    //get the values of the make and model text inputs
    var Fname = document.getElementById("Fname").value;
    var Lname = document.getElementById("Lname").value;
    var Country = document.getElementById("Country").value;


    //Test to ensure that the user has entered both a make and model
    if (Fname !== "" && Lname !== "" && Country !== "") {
      //Insert the user entered details into the cars table, note the use of the ? placeholder, these will replaced by the data passed in as an array as the second parameter
      mydb.transaction(function(t) {
        t.executeSql("INSERT INTO mydb (Fname, Lname, Country) VALUES (?, ?, ?)", [Fname, Lname, Country]);
        outputDrafts();
      });
    } else {
      alert("You must enter a make and model!");
    }
  } else {
    alert("db not found, your browser does not support web sql!");
  }
}
//function to remove a car from the database, passed the row id as it's only parameter

function deleteDraft(id) {
  //check to ensure the mydb object has been created
  if (mydb) {
    //Get all the cars from the database with a select statement, set outputCarList as the callback function for the executeSql command
    mydb.transaction(function(t) {
      t.executeSql("DELETE FROM mydb WHERE id=?", [id], outputDrafts);
    });
  } else {
    alert("db not found, your browser does not support web sql!");
  }
}

outputDrafts();
var link = document.getElementById("addcar");

link.onclick = function () { alert(1) 
addDraft();
};