我正在开发一个phonegap应用程序。除了一个头痛问题外,所有事情都运行良好
我可以成功地将数据插入数据库。但是如果我在插入代码之后添加JavaScript重定向代码,则数据将不会成功添加到数据库中。以下是相关代码:
function insertDeadlineToDB(dbId,dbDescription,dbClass,dbDueDate, dbDueTime, dbType, dbAdditionalInfo) {
//alert('insert called');
alert('before populate');
db.transaction(populateDB, errorCB, successCB);
alert('before insert');
db.transaction(function(tx){
tx.executeSql('INSERT INTO deadlines (id, description, class, dueDate, dueTime, type, additionalInfo) VALUES (?,?,?,?,?,?,?)',[dbId,dbDescription,dbClass,dbDueDate, dbDueTime, dbType, dbAdditionalInfo],successCB, errorCB);
alert(tx);
});
window.location.href = "deadlines.html"
}
我也试过了window.location.replace
,但它仍无效。
答案 0 :(得分:1)
根据需要将重定向放入特定于事务的回调中以获得成功和/或失败,即
更改executeSQL行;
tx.executeSql('INSERT INTO deadlines (id, description, class, dueDate, dueTime, type, additionalInfo) VALUES (?,?,?,?,?,?,?)',[dbId,dbDescription,dbClass,dbDueDate, dbDueTime, dbType, dbAdditionalInfo],successCbTx, errorCbTx);
为tx成功添加特定功能并失败;
function successCbTx(){
window.location.href = "deadlines.html";
}
function errorCbTx(){
// logic as required
}
答案 1 :(得分:0)
页面将首先被重定向,因此它不会将数据存储在数据库中 所以写一个成功的函数,它会自动存储数据。
function successCbTx(){
window.location.href = "deadlines.html";
}
或
function successCbTx(){
$(location).attr('href','deadlines.html');
}
也可以。