IndexedDB-增删数据
IndexedDB
IndexedDB
| 编号 | 名称 | 价格 | 删除 |
|---|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>IndexedDB</title>
</head>
<body>
<h1>IndexedDB </h1>
<input value="创建库" style="background-color: rgb(111, 111, 235); border: 0px;" type="button" onclick="create()" />
<input type="button" style="background-color: rgb(111, 111, 235); border: 0px;" value="删除表"><br>
<br>
<table border="1" id="tabGoods"cellspacing="0" style="width: 800px; border: 2px solid blue;" >
<tr>
<th>编号</th>
<th>名称</th>
<th>价格</th>
<th>删除</th>
</tr>
</table>
<fieldset style="width: 800px;border: 2px solid blue;">
<legend >商品信息</legend>
<label for="name">名称</label>
<input type="text" name="id" id="id" value="" />
<p>
<label for="name">价格</label>
<input type="text" name="name" id="name" value="" />
</p>
<p>
<input type="button" style="background-color: rgb(111, 111, 235); border: 0px;" id="btnSubmit" value="添加" />
<input type="button" style="background-color: rgb(111, 111, 235); border: 0px;" id="btnUpdate" value="更新" />
</p>
</fieldset>
<h3 id="msg"></h3>
<script src="/js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script>
var db;
function init() {
create();
$("body").on("click", "#btnSubmit", {}, function() {
add();
});
$("#tabGoods").on("click", ".del", {}, function() {
if(confirm('确定要删除?')) {
var tr = $(this).closest("tr");
del(tr.data("goods").id, function() {
alert('删除成功!');
tr.remove();
});
}
});
$("#tabGoods").on("click", ".edit", {}, function() {
var tr = $(this).closest("tr");
var obj = tr.data("goods");
$("#id").val(obj.id).prop("disabled", "disabled");
$("#name").val(obj.name);
// $("#price").val(obj.price);
});
$("body").on("click", "#btnUpdate", {}, function() {
var obj = {
"id": $("#id").val(),
"name": $("#name").val(),
};
edit(obj, function() {
alert('修改成功!');
getAll();
});
$("#id").val(obj.id).removeProp("disabled");
});
}
init();
function create() {
var request = indexedDB.open("gomallPro", 2);
//绑定回调事件,成功时
request.onsuccess = function(e) {
db = e.target.result;
log('创建成功!');
getAll();
};
//失败时
request.onerror = function(e) {
log("错误:" + e.target.errorCode || e.target.error);
};
request.onupgradeneeded = function(e) {
e.target.result.createObjectStore("goods", {
"keyPath": "id"
});
log("初始化数据库成功!");
};
}
//新增数据
function add() {
var tx = db.transaction("goods", "readwrite");
var goods = tx.objectStore("goods");
var item = {
"id": $("#id").val(),
"name": $("#name").val(),
"price": $("#price").val()
};
goods.add(item);
log("添加成功!");
getAll();
}
//更新对象
function edit(item, callback) {
var tx = db.transaction("goods", "readwrite");
var goods = tx.objectStore("goods");
//执行更新
var request = goods.put(item);
request.onsuccess = function(e) {
log(e.target.result);
if(callback) callback();
};
}
//删除对象
function del(key, callback) {
var tx = db.transaction("goods", "readwrite");
var goods = tx.objectStore("goods");
var request = goods.delete(key);
request.onsuccess = function(e) {
log(e.target.result);
log("删除成功!");
if(callback) callback();
};
}
var index;
function getAll() {
index = 1;
$("#tabGoods tr:gt(0)").remove();
var tx = db.transaction("goods", "readwrite");
var goods = tx.objectStore("goods");
var request = goods.openCursor();
request.onsuccess = function(e) {
var cursor = e.target.result;
if(cursor) {
var obj = cursor.value;
genTr(obj);
cursor.continue();
}
};
}
function genTr(goods) {
var tr = $("<tr/>").data("goods", goods);
$("<td/>").html(index++).appendTo(tr);
$("<td/>").html(goods.id).appendTo(tr);
$("<td/>").html(goods.name).appendTo(tr);
var btnDel = $("<input type='button' value='删除' style='background-color: rgb(111, 111, 235); ' class='del'/>");
var btnEdit = $("<input type='button' value='编辑' style='background-color: rgb(111, 111, 235); ' class='edit'/>");
$("<td/>").append(btnDel).append(btnEdit).appendTo(tr);
tr.appendTo($("#tabGoods"));
}
var msg = document.getElementById("msg");
function log(m) {
msg.innerHTML+=m+"<br/>";
}
</script>
</body>
</html>
浙公网安备 33010602011771号