如果在添加后使用JavaScript重定向,则无法将数据添加到sqlite数据库

时间:2014-04-01 17:25:55

标签: jquery sqlite redirect insert

我正在开发一个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,但它仍无效。

2 个答案:

答案 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');

}

也可以。