- ベストアンサー
HTML5 Web Databaseのlistから項目を選択して詳細を表示したい
- WebDatabaseのlistから選択した項目を詳細表示する方法を知りたい
- 詳細一覧detail_b()ボタンを押した際、listで選ばれているレコード内容を表示したい
- 「load()」関数で項目を表示し、選択された行を指定するためのSELECT文を知りたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2 の補足より。 > tx.executeSql("insert into storage (key1, val, val2) values (?, ?, ?)", [key1, value, value2], function() { そして、No.0 より。 > list.options[list.options.length] = new Option(row.val2, row.val, row.key1); であれば、 > tx.executeSql("select * from storage where key1 = ?", [selected], function(tx, rs) { ではなく、 tx.executeSql("select * from storage where val = ?", [selected], function(tx, rs) { です。この selected は row.val の値ですから。 それと、new Option(text/*文字列*/, value/*文字列*/, defaultSelected/*真偽値*/, selected/*真偽値*/) ですから、option 要素の生成時に row.key1 は反映されません(真偽値に型変換されます)。これが意図したものか分かりませんが、もしミスであるならば、慣れないうちは古い Option コンストラクタを使わず、createElement('option') から一歩ずつ確実に要素を作って下さい。
その他の回答 (2)
- Chaire
- ベストアンサー率60% (79/130)
No.1 補足より。 > 質問内容にadd()、remove() 関数の中身はいらないですよね? 必要です。No.0 だけでは添付画像のようにならないのですから。 No.0 ではテーブルの形だけは分かりますが、肝心のデータが分かりません。それで「SQL で拾えない」と言われても、どうにも返答のしようがありません。 ※なので、どこのサンプルかと検索しましたが、全く同じ指摘を受けていませんでしたか。質問の放置は感心しませんが。 このままでは埒があかないので、とにかく add() 関数の中身だけでも書いて頂けませんか。あるいはせめて、「あああああ」と「いい」をどうやって追加したかぐらい書いて下さい。
補足
yahooは文字数制限あり記述できませんでした。 2回目以降の補足もどう投稿すればよいかわからずです。 function remove() { var list = document.getElementById("list"); if (list.selectedIndex < 0) { return; } var selected = list.options[list.selectedIndex].value; // 選択された項目を削除 db.transaction(function(tx) { tx.executeSql("delete from storage where key1 = ?", [selected], function() { load(); }); }); } function add() { var key1 = document.getElementById("key1").value; var value = document.getElementById("value").value; var value2 = document.getElementById("value2").value; // storageテーブルに値を格納 db.transaction(function(tx) { tx.executeSql("insert into storage (key1, val, val2) values (?, ?, ?)", [key1, value, value2], function() { load(); }); }); } ちなみに、色々かえているうちに、remove()は上記で動きません。 追加はキー:値:値2:にデータ入力し追加ボタン押下し追加しています。
- Chaire
- ベストアンサー率60% (79/130)
> どのようなSELECT文を書けば listで選択された行を指定できるのですか? それを知るために必要な add()、remove() 関数の中身が省略されているので、このままでは考えようがありません。と言うか、カテゴリ違いではないですか。 HTML カテゴリなので一応、HTML(5) として正しい形になっていませんので修正して下さい。 http://html5.validator.nu/
補足
質問内容にadd()、remove() 関数の中身はいらないですよね?
お礼
ありがとうございました。