如何从另一个页面访问sqlite数据库javascript?

时间:2016-08-09 19:34:57

标签: javascript android sqlite cordova

在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;
&#13;
&#13;

0 个答案:

没有答案
相关问题