我正在用JS创建一个数据库
var db = openDatabase('exampleDB', '1.0', 'Database', 2 * 1048 * 1048);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF EXISTS alunos (ID INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, data TEXT)');
})
它创建了表,但是当我尝试插入一条记录时,我遇到以下问题未捕获的ReferenceError:nome未定义
$(document).ready(function () {
$("#btnVolta").click(function () {
window.location.href = 'index.html'
});
$("#procura").click(function () {
var id = document.getElementById('idaluno').value;
var nome = document.getElementById('nomealuno').value;
var data = document.getElementById('dataluno').value;
var posting = '{"ID":' + id + ',"Nome":"' + nome + '","DataNascimento":"'+ data + 'T00:00:00"}';
post = JSON.parse(posting);
alert(posting);
readPosts(posting);
});
function readPosts(formData) {
console.log('A inserir');
$.ajax({
url: "http://myserver/api/alunos/" ,
type: "POST" ,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: formData,
success: function (data) {
//data - response from server
$('#posts').html('Inserido com sucesso');
},
error: function (jqXHR, textStatus, errorThrown) {
if (navigator.onLine)
{
$('#posts').html('Erro' + jqXHR + textStatus + errorThrown);
}else
{
db.transaction(function (tx) {
tx.executeSql('INSERT INTO alunos (nome, data) VALUES(?,?)',[nome,data]);
})
$('#posts').html('Inserido no DB Local');
}
}
});
}
});
问题出在哪里?
我必须添加SQLite插件吗?如果是,我该怎么做?
谢谢大家
答案 0 :(得分:0)
您尚未声明nome变量。
<强>更新强>
你没有声明变量。这就是为什么它不起作用。请尝试下面的代码
<script>
$(document).ready(function ()
{
$("#btnVolta").click(function()
{
window.location.href = 'index.html'
});
$("#procura").click(function()
{
var id = document.getElementById('idaluno').value;
var nome = document.getElementById('nomealuno').value;
var data = document.getElementById('dataluno').value;
var posting = '{"ID":' + id + ',"Nome":"' + nome + '","DataNascimento":"' + data + 'T00:00:00"}';
post = JSON.parse(posting);
alert(posting);
readPosts(posting);
});
function readPosts(formData)
{
console.log('A inserir');
$.ajax({
url : "http://myserver/api/alunos/",
type : "POST",
dataType : "json",
contentType : "application/json; charset=utf-8",
data : formData,
success : function(data)
{
//data - response from server
$('#posts').html('Inserido com sucesso');
},
error : function(jqXHR, textStatus, errorThrown)
{
if(navigator.onLine)
{
$('#posts').html('Erro' + jqXHR + textStatus + errorThrown);
}
else
{
db.transaction(function(tx)
{
var nome = "name goes here";
var data = "data goes here";
tx.executeSql('INSERT INTO alunos (nome, data) VALUES(?,?)', [nome, data]);
})
$('#posts').html('Inserido no DB Local');
}
}
});
}
});
</script>
更新2
使用此代码
db.transaction(function(tx)
{
var nome = "name goes here";
var data = "data goes here";
tx.executeSql('INSERT INTO alunos (nome, data) VALUES(?,?)', [nome, data], function(tran, success)
{
alert("in success")
}, function(tran, error)
{
console.log(error.message);
alert("in error")
});
});