在phonegap cordova中,一切都发生在" deviceready"之后。打开数据库,然后将播放器名称插入数据库。我已成功展示了那些球员'这个html页面上的按钮内的名称 - 一个函数getRecords,它调用有趣的resultSuccess,但是当我尝试从另一个页面调用该函数时,它从头开始运行整个脚本然后抛出错误。
function errorcb() { alert("Can't add player into DataBase!"); db.close();
window.onload = function() {
document.addEventListener("deviceready", OnDeviceReady, false);
document.getElementById("submitbtn").addEventListener("click", getplayers, false);
document.getElementById("subb").addEventListener("click", getRecords, false);
document.getElementById("btn0").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn1").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn2").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn3").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn4").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn5").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn6").addEventListener("click", deletePlayer, false); // DELETE PLAYER
document.getElementById("btn7").addEventListener("click", deletePlayer, false); // DELETE PLAYER
}
var db, clickable = true;
var pname1, pname2, pname3, pname4, pname5, pname6, pname7, pname8;
var idDelete;
function OnDeviceReady() {
alert("device is ready!");
makeDB();
clickable = true;
}
function openDB() {
return window.sqlitePlugin.openDatabase({
name: 'playerDB.db',
location: 'default'
});
}
function makeDB() {
db = openDB();
db.transaction(fillDB, errorcb, successcb);
alert("User: makeDB");
}
function fillDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS player(id INTEGER PRIMARY KEY AUTOINCREMENT, name text)');
}
function successcb() {
alert("TABLE created Successfully!");
}
function errorcb() {
alert("Can't add player into DataBase!");
db.close();
}
function defaultsuccess() {
alert("default success");
}
function defaultfault(error) {
alert("default pogreska: " + error);
}
function transactionsucces() {
alert("Transaction success");
}
function transactionfault() {
alert("Transaction fault");
}
function otvoristr() { // funckija otvara wheel.html
window.location.assign("wheel.html"); //works on android
}
function getRecords() {
db = openDB();
db.transaction(function(tx) {
//alert("getRecords");
tx.executeSql("SELECT * FROM player", [], resultSuccess, resultError);
}, transactionfault, transactionsucces);
}
function resultSuccess(tx, response) {
alert("Response : " + response);
var div = document.getElementById("divResponse");
var temp = "<table><tr><th>name</th></tr></table>";
alert(response.rows.length); //4
for (var i = 0; i < response.rows.length; i++) { //append all strings
$(div).append(temp += '<button id="btn' + i + '" onClick="tellId(this.id)">' + response.rows.item(i).name + '</button>');
//temp += "<button>" + response.rows.item(i).name+"</button>";
alert(response.rows.item(i).id);
}
div.innerHTML = temp;
}
function tellId(clicked_id) {
alert(clicked_id);
}
function resultError(error) {
alert("greska e: " + error.message);
}
function getplayers() {
if (!clickable) return;
alert("insert into table p1 p2");
//getting id of fields and insert into table-database
}
//opens page wheel.html
otvoristr();
}
/*+++++++++++++++++++++ DELETE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
function deletePlayer() {
//delete function
}
function deleteSuccess() {
alert('DELETE error: ' + error.message);
}
&#13;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1.0, minimum-scale=1.0, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<link rel="stylesheet" type="text/css" href="css/640i.css" />
<link rel="stylesheet" type="text/css" href="css/slidingview.css" />
<script src="js/jquery-1.7.1.js"></script>
<script src="js/jquery.animate-enhanced.js"></script>
<script src="js/slidingview.js"></script>
<!-- <script src="../plugins/cordova-sqlite-storage/www/SQLitePlugin.js"></script> - not working-->
<script src="SQLitePlugin.js"></script>
<script>
$(document).ready(function() {
//Setup the ViewNavigator
new SlidingView('sidebar', 'body');
});
</script>
<script type="text/javascript" src="js/media.js"></script>
</head>
<body>
<div class="slidingview_wrapper">
<div id="sidebar">
<div class="logoinfo">
<img id="headerlogo" src="icon.png" />
</div>
<nav>
<a href="wheel.html">
<p class="sideP">app</p>
</a>
<a href="info.html">
<p class="sideP">Info</p>
</a>
<div id="deviceready">
<a href="#" onclick="app.alert()">
<p class="sideP">Version</p>
</a>
</div>
</nav>
</div>
<div id="body">
<small id="indextext">SLIDE</small>
<header>
<!--
<div class="ilogo">
<img id="headerlogo" src="icon.png"/><br/>
</div>
-->
</header>
<table id="tablica1">
<tr id="tr1">
<th>Player 1:</th>
<td>
<input type="text" id="playersname1" name="playerName" value="hani" />
</td>
</tr>
<tr id="tr2">
<th>Player 2:</th>
<td>
<input type="text" id="playersname2" name="playerName" value="hanuska" />
</td>
</tr>
<tr id="tr3">
<th>Player 3:</th>
<td>
<input type="text" id="playersname3" name="playerName" value="ivan" />
</td>
</tr>
<tr id="tr4">
<th>Player 4:</th>
<td>
<input type="text" id="playersname4" name="playerName" value="nikolina" />
</td>
</tr>
<tr id="tr5">
<th>Player 5:</th>
<td>
<input type="text" id="playersname5" name="playerName" value="" />
</td>
</tr>
<tr id="tr6">
<th>Player 6:</th>
<td>
<input type="text" id="playersname6" name="playerName" value="" />
</td>
</tr>
<tr id="tr7">
<th>Player 7:</th>
<td>
<input type="text" id="playersname7" name="playerName" value="" />
</td>
</tr>
<tr id="tr8">
<th>Player 8:</th>
<td>
<input type="text" id="playersname8" name="playerName" value="" />
</td>
</tr>
<tr id="tr9">
<td colspan="2">
<input type="submit" value="Play" id="submitbtn">
</td>
</tr>
</table>
<!--<a href="pdata.html">Open pdata</a>-->
<!--This instructs the Cordova CLI to inject a platform specific
version of cordova.js at build time. In other words, cordova.js doesn't
need to be (and shouldn't be) present in your project/www folder.-->
<script type="text/javascript" src="js/basesql.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
&#13;