2014-04-01 55 views
1

我正在開發phonegap應用程序。所有的東西都運行良好,除了一個頭痛問題如果在添加後使用JavaScript重定向,則無法將數據添加到sqllite數據庫

我可以成功地將數據插入數據庫。但是如果我在插入代碼後添加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但它仍然沒有工作。

回答

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 
} 
0

頁將被首先重定向,所以它不會把數據存儲在數據庫 這麼寫成功,將自動存儲數據的功能。

function successCbTx(){ 

    window.location.href = "deadlines.html"; 
} 

function successCbTx(){ 

    $(location).attr('href','deadlines.html'); 

} 

也會起作用。

相關問題