gpt4 book ai didi

javascript - mysql lite 数据库 Cordova

转载 作者:行者123 更新时间:2023-12-03 06:26:36 24 4
gpt4 key购买 nike

我的 cordova 项目中的 mysql lite 数据库有问题。我尝试在我的 htc one x+ 上使用 android 版本 4.2.2 进行测试,但没有任何效果。JavaScript 警报和数据库代码都无法在手机和模拟器上运行。奇怪的是后退按钮的代码可以工作,但此代码中的警报却不能。也许你能找到原因?代码来了。

        <script type="text/javascript" charset="utf-8">
function onBackButton() {
console.log("Test");
alert("Back Button works!");
window.location = "bearbeiten.html";
}
function onLoad() {
alert("onLoad method works!");
document.addEventListener("deviceready", onDeviceReadyBb, false);
}
function onDeviceReadyBb(){
document.addEventListener("backbutton", onBackButton, false);
}
function saveTopic(){
//Load the device API libraries
document.addEventListener("deviceready", onDeviceReady, false);
}// Device APIs are now available
function onDeviceReady() {
//Create database object
var db = window.openDatabase("Database", "1.0", "EasyLearning", 200000);
db.transaction(populateDB, errorCB, successCB);
}
//Create database table "topics"
function populateDB(tx){
var text = document.getElementById("t1").value;
alert(text+" is saved in database!");
var abfrage = tx.executeSql('SELECT COUNT(*) FROM themen WHERE thema ='+text+');
if(abfrage == 1)
{
alert("topic is alredy existing!");
}
else{
alert("New topic will be saved...")
tx.executeSql('CREATE TABLE IF NOT EXISTS themen (themennr INTEGER AUTO_INCREMENT, thema VARCHAR(10000)');
tx.executeSql('INSERT INTO themen(thema) VALUES ('+text+')');
}
}
//Shows error if the query is wrong
function errorCB(tx, err) {
alert("Error processing SQL: "+err);
}
//Shows successful message if it works
function successCB() {
alert("Thema erfolgreich gespeichert!");
}
</script>

最佳答案

首先,您使用的不是 SQLite,而是 WebSQL。

您的代码存在一些问题,我更改了它的结构,并按照 cordova 文档推荐的最佳实践方式进行了处理,我希望您的问题能够通过查看它得到解决:

    var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function(){

document.addEventListener('deviceready', this.onDeviceReady, false);
document.addEventListener('backbutton', this.onBackButton, false);

},
onBackButton: function(){
console.log("Test");
alert("Back Button works!");
window.location = "bearbeiten.html";
},
onDeviceReady: function() {
var db = window.openDatabase("Database", "1.0", "EasyLearning", 200000);
db.transaction(populateDB, errorCB, successCB);

},
populateDB: function(tx){
var text = document.getElementById("t1").value;
alert(text+" is saved in database!");
var abfrage = tx.executeSql('SELECT COUNT(*) FROM themen WHERE thema ='+text+');
if(abfrage == 1)
{
alert("topic is alredy existing!");
}
else{
alert("New topic will be saved...")
tx.executeSql('CREATE TABLE IF NOT EXISTS themen (themennr INTEGER AUTO_INCREMENT, thema VARCHAR(10000)');
tx.executeSql('INSERT INTO themen(thema) VALUES ('+text+')');
}
},
errorCB: function(tx, err) {
alert("Error processing SQL: "+err);
},
//Shows successful message if it works
successCB: function() {
alert("Thema erfolgreich gespeichert!");
}
}
app.initialize();

请注意,我没有更改函数的主体,我只是按照函数执行的方式编写它们。在移动设备上测试之前,不要忘记使用浏览器控制台来调试代码。

关于javascript - mysql lite 数据库 Cordova ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38624037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com