asimryu

indexed_db basic

Nov 22nd, 2017
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>indexed DB</title>
  6. <link rel="stylesheet" href="css/bootstrap.css">
  7. <script src="js/jquery-3.2.1.min.js"></script>
  8. </head>
  9. <body>
  10. <div class="container">
  11. <div class="jumbotron">
  12. <h1>My Friends</h1>
  13. </div>
  14. <div>
  15. <form id="addform" class="form-inline">
  16. <div class="form-group">
  17. <input type="text" id="fname" placeholder="이름" class="form-control">
  18. </div>
  19. <div class="form-group">
  20. <input type="email" id="femail" placeholder="Email" class="form-control">
  21. </div>
  22. <div class="form-group">
  23. <input type="text" id="fphone" placeholder="전화번호" class="form-control">
  24. </div>
  25. <button type="submit" class="btn-add btn btn-default">저장</button>
  26. </form>
  27. </div>
  28. <div>
  29. <table id="address" class="table">
  30. <tr class="active">
  31. <td>번호</td>
  32. <td>이름</td>
  33. <td>Email</td>
  34. <td>연락처</td>
  35. </tr>
  36. </table>
  37. </div>
  38. </div>
  39. <script>
  40.  
  41. var db;
  42.  
  43. //db open(없으면 생성)
  44. var request = window.indexedDB.open("adbook",1);
  45.  
  46. request.onerror = function(event) {
  47. console.log("DB Open Error");
  48. }
  49.  
  50. //After DB Open
  51. request.onsuccess = function(event){
  52. db = request.result;
  53. readAll();
  54. }
  55.  
  56. request.onupgradeneeded = function(event){
  57. var result = event.target.result;
  58. var objectStore = result.createObjectStore("address",{keyPath:"id", autoIncrement:true});
  59.  
  60. }
  61.  
  62.  
  63.  
  64. $(".btn-add").on("click",function(e){
  65. e.preventDefault();
  66. var friend = {};
  67. friend.fname = $("#fname").val();
  68. friend.femail = $("#femail").val();
  69. friend.fphone = $("#fphone").val();
  70. if( ! friend.fname || ! friend.femail || ! friend.fphone ) {
  71. alert("모든 항목을 입력하세요.");
  72. return;
  73. }
  74. saveData(friend);
  75. });
  76.  
  77. function saveData(data) {
  78. var tr = db.transaction(["address"],"readwrite");
  79. var store = tr.objectStore("address");
  80. var request = store.add(data);
  81. request.onsuccess = function(event){
  82. var id = event.target.result;
  83. data.id = id;
  84. addList(data);
  85. $("#fname").val("");
  86. $("#femail").val("");
  87. $("#fphone").val("");
  88. }
  89. request.onerror = function(event){
  90. console.log("Save Error");
  91. }
  92. }
  93.  
  94. function readAll(){
  95. var tr = db.transaction(["address"]);
  96. var store = tr.objectStore("address");
  97. store.openCursor().onsuccess = function(event){
  98. var cursor = event.target.result;
  99. if( cursor ) {
  100. //console.log(cursor.value);
  101. addList(cursor.value);
  102. cursor.continue();
  103. } else {
  104. console.log("No Data");
  105. }
  106. }
  107. }
  108.  
  109. function addList(data) {
  110. var tr = "<tr>";
  111. tr += "<td>" + data.id + "</td>";
  112. tr += "<td>" + data.fname + "</td>";
  113. tr += "<td>" + data.femail + "</td>";
  114. tr += "<td>" + data.fphone + "</td>";
  115. tr += "</tr>";
  116. $("#address tr:last").after(tr);
  117. }
  118. </script>
  119. </body>
  120. </html>
Advertisement
Add Comment
Please, Sign In to add comment