2010-03-25 7 views
4

openDatabase에 대해 배우려고하고 있는데 INSERT TABLE1에 연결하려고 생각하지만 SELECT * FROM TABLE1이 작동하는지 확인할 수 없습니다. 두 가지 거기 당신은 거의 다openDatabase Hello World

<html> 
<head> 
<script src="http://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
google.load("jquery", "1"); 
</script> 
<script type="text/javascript"> 
var db; 

$(function(){ 
    db = openDatabase('HelloWorld'); 

    db.transaction(
     function(transaction) { 
      transaction.executeSql(
       'CREATE TABLE IF NOT EXISTS Table1 ' + 
       ' (TableID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ' + 
       ' Field1 TEXT NOT NULL);' 
      ); 
     } 
    ); 

    db.transaction(
     function(transaction) { 
      transaction.executeSql(
       'SELECT * FROM Table1;',function (transaction, result) { 
        for (var i=0; i < result.rows.length; i++) { 
      alert('1'); 
         $('body').append(result.rows.item(i)); 
        } 
       }, 
       errorHandler 
      ); 
     } 
    ); 

    $('form').submit(function() { 
     var xxx = $('#xxx').val(); 
     db.transaction(
      function(transaction) { 
       transaction.executeSql(
       'INSERT INTO Table1 (Field1) VALUES (?);', [xxx], function(){ 
        alert('Saved!'); 
       }, 
       errorHandler 
       ); 
      } 
     ); 
     return false; 
    }); 
}); 

function errorHandler(transaction, error) { 
    alert('Oops. Error was '+error.message+' (Code '+error.code+')'); 
    transaction.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> 
    <a href="http://www.google.com">Cancel</a> 
</form> 
</body> 
</html> 

답변

5

: 당신은, 당신은 executeSql 방법을 제공해야 매개 변수 배열 인수를 SQL 문 콜백을 사용하려는 경우

  1. 제 1, 경우에도 쿼리에 매개 변수가 필요하지 않습니다.
  2. 루프에 표시 할 필드가 있어야합니다. result.rows.item(i)은 테이블 필드로 속성을 포함하는 개체입니다.

다음과 같이 작동합니다 당신의 선택을 :

db.transaction(function(transaction) { 
    transaction.executeSql('SELECT * FROM Table1',[], function (trx, result) { 
    for (var i=0; i < result.rows.length; i++) { 
     $('body').append(result.rows.item(i).Field1); // <-- getting Field1 value 
    } 
    }, errorHandler); 
}); 

은 예를 here을 확인합니다.

+0

정말 고마워요. –

+0

Phillip, 도와 드리겠습니다. – CMS