下記のようなindexedDBを組みました。
dbName = 'mydb';
storeName = 'mystore';
keyValue = 'MYID';YAMADA
keyValue = 'PASS';1234
下記のようにすることで、
<a href='./../index.html?uid=YAMADA'>インデックス</a>
というリンクを張ることができました。
javascript
1 2 3<!DOCTYPE html> 4<html> 5<head> 6 <meta charset="utf-8"/> 7 <title>Indexed DataBase APIサンプル</title> 8<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 9</head> 10<body> 11 12<script> 13var dbName = 'mydb'; 14var openReq = indexedDB.open(dbName); 15// DB名を指定して接続。DBがなければ新規作成される。 16 openReq.onupgradeneeded = function(event){ 17 //onupgradeneededは、DBのバージョン更新(DBの新規作成も含む)時のみ実行 18 console.log('db upgrade'); 19 } 20 openReq.onsuccess = function(event){ 21 //onupgradeneededの後に実行。更新がない場合はこれだけ実行 22 console.log('db open success'); 23 var db = event.target.result; 24 // 接続を解除する 25 db.close(); 26 } 27 openReq.onerror = function(event){ 28 // 接続に失敗 29 console.log('db open error'); 30 } 31var storeName = 'mystore'; 32var keyValue = 'MYID'; 33var openReq = indexedDB.open(dbName); 34 openReq.onsuccess = function(event){ 35 var db = event.target.result; 36 var trans = db.transaction(storeName, 'readonly'); 37 var store = trans.objectStore(storeName); 38 var getReq = store.get(keyValue); 39 getReq.onsuccess = function(event){ 40 if (event.target.result === undefined) { 41 result.innerHTML = "指定したキーは存在しません。"; 42 } else { 43 result.innerHTML ="<a href='./../index.html?uid=" + event.target.result.myvalue + ""'>インデックス</a>"; 44 } 45 46 } 47 } 48</script> 49 50 51 52<BR>上部表示 53<BR> 54<div id="result"/> 55<BR> 56下部表示 57<BR> 58 59</body> 60</html> 61
今回やりたいこと
<a href='./../index.html?uid=YAMADA&pass=1234'>インデックス</a>
とユーザーIDだけでなくパスワードまでリンクにしたいと考えています。
(実際にはパスワードはSHA256化してます)
javascript
1var storeName = 'mystore'; 2var keyValue = 'MYID'; 3var openReq = indexedDB.open(dbName); 4 openReq.onsuccess = function(event){ 5 var db = event.target.result; 6 var trans = db.transaction(storeName, 'readonly'); 7 var store = trans.objectStore(storeName); 8 var getReq = store.get(keyValue); 9 getReq.onsuccess = function(event){ 10 if (event.target.result === undefined) { 11 result.innerHTML = "指定したキーは存在しません。"; 12 } else { 13 result.innerHTML ="<a href='./../index.html?uid=" + event.target.result.myvalue + ""'>インデックス</a>"; 14
の部分を「IDとPASSの2階建て」にすれば簡単に行けそうでしたので、下記のように書き換えました。
javascript
1var storeName = 'mystore'; 2 3var keyValue = 'MYID'; 4var keyValue2 = 'PASS'; 5 6var openReq = indexedDB.open(dbName); 7 openReq.onsuccess = function(event){ 8 9 var db = event.target.result; 10 var trans = db.transaction(storeName, 'readonly'); 11 var store = trans.objectStore(storeName); 12 var getReq = store.get(keyValue); 13 14 var db2 = event.target.result2; 15 var trans2 = db2.transaction(storeName, 'readonly'); 16 var store2 = trans2.objectStore(storeName); 17 var getReq2 = store2.get(keyValue2); 18 19 getReq.onsuccess = function(event){ 20 if (event.target.result === undefined) { 21 result.innerHTML = "指定したキーは存在しません。"; 22 } else { 23 result.innerHTML ="<a href='./../index.html?uid=" + event.target.result.myvalue + "&pws=" + event.target.result2.myvalue + "'>インデックス</a>"; 24
var keyValue2 = 'PASS';に対応する部分として
新たに
var db2 = event.target.result2; var trans2 = db2.transaction(storeName, 'readonly'); var store2 = trans2.objectStore(storeName); var getReq2 = store2.get(keyValue2);
を付け加え、リンクを
<a href='./../index.html?uid=" + event.target.result.myvalue + "&pws=" + event.target.result2.myvalue + "'>インデックス</a>"
としたものです。
結果
Uncaught TypeError: Cannot read property 'transaction' of undefined
というエラーが出ました。
次にresult2ではなくtarget2も試してみましたが、
event.target.result2; →
var db2 = event.target2.result; に変更し
<a href='./../index.html?uid=" + event.target.result.myvalue + "&pws=" + event.target2.result.myvalue + "'>とする。
Uncaught TypeError: Cannot read property 'result' of undefined
というエラーが出ました。
どうすれば
<a href='./../index.html?uid=YAMADA&pass=1234'>インデックス</a>
のようにIDとパスワードを引っ張ってくることができるのでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/01 12:56
2018/01/01 13:37
2018/01/01 21:25
2018/01/01 22:50
2018/01/01 23:33
2018/01/02 01:22
2018/01/02 03:25
2018/01/02 03:50
2018/01/02 05:01