0

データベースからデータを選択してアラートを表示する関数を実行しましたが、Success 関数で次のエラーが発生します。

未定義のretrieveDataのプロパティ「rows」を読み取れません

ここに私の機能があります

 function selectAll(){
    DB.transaction(
function(transaction) {
    transaction.executeSql("SELECT * FROM CDprodutos", [], retrieveData()); //The retrieveData function is where the data is sent/returned to in parameters (transation, results)
});
}
function retrieveData(transaction, results) {
   for(var i = 0; i < results.rows.length; i++) {

        var data = results.rows.item(i)['id']
        alert(data.value);
    }
}
4

1 に答える 1

1

あなたの関数はすぐに実行されているように見えrowsますが、それに渡されるデータもありません。これをコールバックとして使用するには、 を削除します。undefined.()retrieveData()

また、それに沿ってデータを渡す必要があるように見えるので、匿名関数はおそらくここでトリックを行うでしょう:

function selectAll(){
    DB.transaction(
        function(transaction) {
            transaction.executeSql("SELECT * FROM CDprodutos", [], function() {
                retrieveData(transation, results); //not sure where results comes from? parameter of function??
        });
    });
}

function retrieveData(transaction, results) {
    for(var i = 0; i < results.rows.length; i++) {
        var data = results.rows.item(i)['id']
        alert(data.value);
    }
}
于 2013-07-31T13:33:06.023 に答える