HTML 5 веб-хранилище не вставляет записи - PullRequest
3 голосов
/ 14 октября 2011

возникли проблемы с вставкой записи в хранилище, отлажено немало. кажется, что он взял значение скорости из HTML-формы и передал его в функцию addItem. но он не выполняет транзакцию. executeSql.

function errorHandler(transaction, error) {
    alert("SQL error: " + error.message);
}

try{
// open the database
var itemsDb = openDatabase('tripDb', '1.0', 'XB Trip DB', 100 * 1024);

// create the list items table if it doesn't exist
var queryCreateTable = 
    "CREATE TABLE IF NOT EXISTS xbTrip(xbId INTEGER NOT NULL PRIMARY KEY 
             AUTOINCREMENT, rate);";
itemsDb.transaction(function (transaction) {
    transaction.executeSql(queryCreateTable, [], null, errorHandler);
}, errorHandler);
}
catch (e)
{
alert(e.message);
}

$(document).ready(function() {

    $("#add").click(function() {
        addItem($("#rate").val(), function() {
        displayMessage();
    });     
        });

    function addItem(rate, callback) {      
    try{
        itemsDb.transaction(function(transaction) {
            transaction.executeSql(
                "INSERT INTO xbTrip(rate) VALUES (?)", 
                [rate],
                callback,
                errorHandler
            );
        });
    }
    catch (e)
    {
        alert(e);
    }       
} // addItem

function displayMessage(){
    alert("Insert record completed");
}
})  

1 Ответ

1 голос
/ 23 мая 2012

Я взял ваш код и немного расширил его.

У вас была одна или две простые синтаксические ошибки, такие как точка с запятой в строке SQL, но вы не уверены, было ли это просто в сообщении Soverflow или нет.

Вот рабочая реализация того, что вы пытаетесь сделать:

http://jsfiddle.net/TnPPa/1/

Возможно, сравните его с вашим и посмотрите, сможете ли вы определить причину неправильного выполнения кода в вашей конкретной ситуации, поскольку вы не указали контекст HTML / App.

Я думаю, что это был, вероятно, просто синтаксис и, возможно, некоторая слишком сложная передача обратных вызовов в анонимных функциях.

Дайте мне знать, как вы поживаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...