• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WebDatabaseのlistから選択項目表示)

HTML5 Web Databaseのlistから項目を選択して詳細を表示したい

このQ&Aのポイント
  • WebDatabaseのlistから選択した項目を詳細表示する方法を知りたい
  • 詳細一覧detail_b()ボタンを押した際、listで選ばれているレコード内容を表示したい
  • 「load()」関数で項目を表示し、選択された行を指定するためのSELECT文を知りたい

質問者が選んだベストアンサー

  • ベストアンサー
  • Chaire
  • ベストアンサー率60% (79/130)
回答No.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') から一歩ずつ確実に要素を作って下さい。

take--8131
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

No.1 補足より。 > 質問内容にadd()、remove() 関数の中身はいらないですよね? 必要です。No.0 だけでは添付画像のようにならないのですから。 No.0 ではテーブルの形だけは分かりますが、肝心のデータが分かりません。それで「SQL で拾えない」と言われても、どうにも返答のしようがありません。 ※なので、どこのサンプルかと検索しましたが、全く同じ指摘を受けていませんでしたか。質問の放置は感心しませんが。 このままでは埒があかないので、とにかく add() 関数の中身だけでも書いて頂けませんか。あるいはせめて、「あああああ」と「いい」をどうやって追加したかぐらい書いて下さい。

参考URL:
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1170120771
take--8131
質問者

補足

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)
回答No.1

> どのようなSELECT文を書けば listで選択された行を指定できるのですか? それを知るために必要な add()、remove() 関数の中身が省略されているので、このままでは考えようがありません。と言うか、カテゴリ違いではないですか。 HTML カテゴリなので一応、HTML(5) として正しい形になっていませんので修正して下さい。 http://html5.validator.nu/

take--8131
質問者

補足

質問内容にadd()、remove() 関数の中身はいらないですよね?

関連するQ&A

専門家に質問してみよう