复制代码代码如下: !DOCTYPE HTML html head meta charset="utf-8"/ title HTML5本地存储之本地数据库篇 /title style .addDiv{ border: 2px dashed #ccc; width:400px; text-align:center; } /style /head body onload="loadAll()" div label for="user_name" 姓名: /label input type="text" id="user_name" name="user_name" / br/ label for="mobilephone" 手机: /label input type="text" id="mobilephone" name="mobilephone"/ br/ label for="mobilephone" 公司: /label input type="text" id="company" name="company"/ br/ input type="button" value="新增记录"/ /div br/ div id="list" /div /body /html
界面展现如下:
要实现创建新联系人并存入数据库功能,需要如下简单的JS代码:
复制代码代码如下: //打开数据库 var db = openDatabase('contactdb','','local database demo',204800); //保存数据 function save(){ var user_name = document.getElementById("user_name").value; var mobilephone = document.getElementById("mobilephone").value; var company = document.getElementById("company").value; //创建时间 var time = new Date().getTime(); db.transaction(function(tx){ tx.executeSql('insert into contact values(?,?,?,?)',[user_name,mobilephone,company,time],onSuccess,onError); }); } //sql语句执行成功后执行的回调函数 function onSuccess(tx,rs){ alert("操作成功"); loadAll(); } //sql语句执行失败后执行的回调函数 function onError(tx,error){ alert("操作失败,失败信息:"+ error.message); }
要展现当前所有已保存的联系人列表,可通过如下JS代码实现:
复制代码代码如下: //将所有存储在sqlLite数据库中的联系人全部取出来 function loadAll(){ var list = document.getElementById("list"); db.transaction(function(tx){ //如果数据表不存在,则创建数据表 tx.executeSql('create table if not exists contact(name text,phone text,company text,createtime INTEGER)',[]); //查询所有联系人记录 tx.executeSql('select * from contact',[],function(tx,rs){ if(rs.rows.length 0){ var result = " table result += " tr th 序号 /th th 姓名 /th th 手机 /th th 公司 /th th 添加时间 /th th 操作 /th /tr for(var i=0;i rs.rows.length;i++){ var row = rs.rows.item(i); //转换时间,并格式化输出 var time = new Date(); time.setTime(row.createtime); var timeStr = time.format("yyyy-MM-dd hh:mm:ss"); //拼装一个表格的行节点 result += " tr td "+(i+1)+" /td td "+row.name+" /td td "+row.phone+" /td td "+row.company+" /td td "+timeStr+" /td td input type='button' value='删除' / /td /tr } list.innerHTML = result; }else{ list.innerHTML = "目前数据为空,赶紧开始加入联系人吧"; } }); }); }
复制代码代码如下: //删除联系人信息 function del(phone){ db.transaction(function(tx){ //注意这里需要显示的将传入的参数phone转变为字符串类型 tx.executeSql('delete from contact where phone=?',[String(phone)],onSuccess,onError); }); }