2
<script type="text/javascript" src="phonegap-1.1.0.js"></script>
<script type="text/javascript" src="cordova-2.2.0.js"></script>
<script type="text/javascript">
    var firstNameBox = null;
    var lastNameBox = null;
    var db = null;
    var dataTable = null;
    /** Called when phonegap javascript is loaded */
    function onDeviceReady() {

        var addButton = document.getElementById("add");
        firstNameBox = document.getElementById("firstName");
        lastNameBox = document.getElementById("lastName");
        dataTable = document.getElementById("data-table");

        db = window.openDatabase("scontactDB", "1.0", "Contacts Database", 1000); //name,version,display name, size
        addButton.addEventListener(
            "click",

        function () {
            db.transaction(
            //function sql statements
            function (tx) {
                ensureTableExists(tx);
                var firstName = firstNameBox.value;
                var lastName = lastNameBox.value;

                var sql = 'INSERT INTO Contacts (firstName, lastName) VALUES ("' + firstName + '","' + lastName + '")';
                tx.executeSql(sql);

            },

            function (err) {
                alert("error callback " + err.code);

            },

            function (err) {
                alert("success callback " + err.code);
                loadFromDB();
            });


        },
        false);
        loadFromDB();

    }

    function loadFromDB() {

        db.transaction(

        function (tx) {
            ensureTableExists(tx);
            tx.executeSql('SELECT * FROM Contacts', [],

            function (tx, results) {
                var htmlStr = "";
                for (var index = 0; index < results.rows.length; index++) {
                    var item = results.rows.item(index);
                    htmlStr = htmlStr + "<tr><td>" + item.firstName + "</td><td>" + item.lastName + "</td><td><button onclick=\"deleteEntry('" + item.id + "');\">X</button></td></tr>";

                }
                dataTable.innerHTML = htmlStr;
            },

            function (err) {
                alert("Unable to fetch result from Contacts Table");
            });

        },

        function (err) {
            alert("error callback " + err.code + " " + err.message);

        },

        function () {
            firstNameBox.value = "";
            lastNameBox.value = "";

        });


    }

    function deleteEntry(id) {
        db.transaction(

        function (tx) {
            ensureTableExists(tx);
            tx.executeSql('Delete FROM Contacts where id=' + id);

        },

        function (err) {
            alert("error callback " + err.code + " " + err.message);

        },

        function (err) {
            alert("success callback ");
            loadFromDB();

        });


    }

    function ensureTableExists(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS Contacts (id INTEGER PRIMARY KEY, firstName,lastName)');

    }
    /** Called when browser load this page*/
    function init() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }
</script>
<body onLoad="init()">
    <table border="1">
        <tr>
            <td><b>First Name</b>
            </td>
            <td><b>Last Name</b>
            </td>
            <td><b>Action</b>
            </td>
        </tr>
    </table>
    <table id="data-table"></table>
    <table>
        <tr>
            <td>
                <input id="firstName" type="text">
            </td>
            <td>
                <input id="lastName" type="text">
            </td>
            <td>
                <button id="add">Add</button>
            </td>
        </tr>
    </table>
</body>

私は電話ギャップにまったく慣れていません。これは私の index.html ファイルです。エラーがどこにあるのかわかりません。値がデータベースに保存されているかどうかを確認する必要があります。助けてください

4

1 に答える 1

0

このコード行を削除すると、問題は解決します。

<script type="text/javascript" src="phonegap-1.1.0.js"></script>

そしてあなたは維持する必要があります

<script type="text/javascript" src="cordova-2.2.0.js"></script>

同じメソッドで2つの類似したjsファイルを使用することはできません。

于 2012-12-28T18:09:13.513 に答える