首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openDatabase问候世界-2

openDatabase问候世界-2
EN

Stack Overflow用户
提问于 2010-03-27 04:19:53
回答 2查看 1.1K关注 0票数 0

这是previous堆栈溢出问题的续篇。我已经重命名了一些变量,这样我就可以知道什么是关键字,什么是我可以控制的名称。

问:为什么deleteRow函数不起作用?

代码语言:javascript
复制
<html>
<head>
<title>html5 openDatabase Hello World</title>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1");
google.setOnLoadCallback(OnLoadCallback);

function OnLoadCallback() {
    var dbo;
    dbo = openDatabase('HelloWorld');

    dbo.transaction(
      function(T1) {
          T1.executeSql(
              'CREATE TABLE IF NOT EXISTS myTable ' +
              '  (myTableID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ' +
              '   Field1 TEXT NOT NULL );'
          );
      }
    );

    dbo.transaction(function(T2) {
        T2.executeSql('SELECT * FROM myTable',[], function (T6, result) {
          for (var i=0; i < result.rows.length; i++) {
            var row = result.rows.item(i);
            $('#savedData').append('<li id="'+row.myTableID+'">' + row.Field1  + '</li>');
          }
        }, errorHandler);
    });

    $('form').submit(function() {
      var xxx = $('#xxx').val();
      dbo.transaction(
          function(T3) {
              T3.executeSql(
              'INSERT INTO myTable (Field1) VALUES (?);', [xxx], function(){
                    $('#savedData').append('<li id="ThisisWhereIneedHELP">' + xxx  + '</li>');
                     $('#xxx').val('');
              },
              errorHandler
              );
          }
      );
      return false;
    });
    $('#savedData > li').live('click', function (){
        deleteRow(this.id); 
        $(this).remove();
    });
}

function deleteRow(myTableID) {
    alert('trying to delete');
    dbo.transaction(function(T4) {
        T4.executeSql('DELETE FROM myTable WHERE myTableID = ?', [myTableID], function(){
            alert('Deleted!');
        }, errorHandler);
    });
}

function errorHandler(T5, error) {
    alert('Oops. Error was '+error.message+' (Code '+error.code+')');
    // T5.executeSql('INSERT INTO errors (code, message) VALUES (?, ?);',
    // [error.code, error.message]);
    return false;
}
</script>
</head>
<body>
<form method="post">
    <input name="xxx" id="xxx" />
    <p>
    <input type="submit" name="OK" />
    </p>
    <ul id="savedData">
    </ul>
</form>
</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-02 21:46:12

您需要在OnLoadCallback函数外部声明dbo变量。此外,目前您还必须更新openDatabase调用的语法。

票数 1
EN

Stack Overflow用户

发布于 2010-04-12 23:50:56

我猜没有人会回答这个问题,所以我就把它结束了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2526473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档