0

一部のデータを保存する必要があるiOSのphonegapアプリに取り組んでいます。phonegap docsに記載されているストレージAPIを使用していますが、データが挿入されていると思います。しかし、SELECTステートメントを使用してデータを取得しようとすると、アラートボックスに出力が表示されません。

「loading2」アラートが表示されていますが、その後は出力がありません。

私のコードは次のとおりです(phonegap wikiから取得):

// load the currently selected icons
    function loadCelebs(mydb)
    {
        try 
        {
            alert("loading2");
            mydb.transaction(
                function(transaction) 
                {
                    transaction.executeSql('SELECT * FROM celebs ORDER BY name', [], celebsDataHandler(transaction,results));
                });
        } 
        catch(e) 
        {
            alert(e.message);
        }
    } 


    // callback function to retrieve the data from the prefs table

    function celebsDataHandler(tx, results) 
    {

        // Handle the results 
            alert(results);

    }
4

1 に答える 1

0

次のように変更してみてください。

 mydb.transaction(
            function(transaction) 
            {
                transaction.executeSql('SELECT * FROM celebs ORDER BY name', [], celebsDataHandler);
            });

transaction() 呼び出しに (tx, results) 部分は必要ありません。完了時にコールバック ハンドラを実行できるように、コールバック ハンドラへの参照を渡すだけです。(tx, results) を追加することで、実行して結果を渡します。

また、エラー ハンドラを渡すことも検討してください。エラーの内容がわかっていると、デバッグが容易になります。

function errorCB(err) {
    alert("Error processing SQL: "+err.code);
}


mydb.transaction(
    function(transaction) 
    {
        transaction.executeSql('SELECT * FROM celebs ORDER BY name', errorCB, celebsDataHandler);
    }
);
于 2011-09-26T14:25:40.337 に答える