用户登录

这个视频我们要做的事情就是,把用户在这个文本框里输入的内容,在点击 提交 按钮以后,插入到 noteapp 这个数据库的 note 这个表里面 ….

我们要做的就是,去监听这个 提交 按钮的点击事件 … 发生点击事件以后 … 去获取到文本框里的内容 … 然后执行 SQL 的 INSERT INTO … 把获取到的内容插入到指定的数据表里面 …

监听 提交 按钮 .. 要先找到这个按钮 … document.getElementById("submit-btn"); 括号里的东西就是在 提交 按钮上定义的 ID … 把找到的东西起个名字 … var submitBtn =

// 获得 提交 按钮并监听它的点击事件
var submitBtn = document.getElementById("submit-btn");

然后再输入 … submitBtn.addEventListener("click", submitNote, false);

监听 提交 按钮的点击事件 … 这个事件发生以后 … 去调用 submitNote 这个函数 …

submitNote()

下面我们再去定义这个 submitNote() …

// 提交笔记
function submitNote(){}

然后在这个函数里,可以使用一个 transaction() 去执行一个数据的交易 … 在这个 transaction() 里面,使用交易的 executeSql() 去执行 INSERT INTO ,把指定的数据插入到指定的数据表里面。

db.transaction(function(tx) {
tx.executeSql("INSERT INTO note (note_content, note_date) VALUES (?, DATETIME('now', 'localtime'))",
[noteContent],
onSuccess, onError);
});

INSERT INTO … 后面加上数据表的名称 … note ,然后在括号里,指定数据表里的栏 … note_content .. 笔记的内容,还有 note_date … 记录笔记的时间 …

VALUES 后面是要插入到这两个栏里面的具体的内容 … 第一个值是 笔记的内容 … 这里我们用一个 ? 号代替一下 … 然后在 executeSQL 的第二个参数里面,再去指定这个地方的具体的内容到底是什么..

这样做会更安全一些 …. 用逗号分隔一下 … 再去定义第二个值 … 也就是记录笔记的时间 … SQLite 的 DATETIME() 函数可以生成当前的时间 …

DATETIME('now', 'localtime')

它可以插入用户当前的本地的时间 … 如果不指定这个 localtime … 会生成一个国际的标准时间 …

在最后,用逗号分隔一下 … 再去定义 executeSql 的第二个参数 .. 是一个数组 … 里面的东西可以去匹配在第一个参数里面使用 ? 号通配符的地方 … 也就是数组里面第一个值,匹配在前面的第一个 ? 号,第二个值,匹配第二个 ? 号 …

这里,我们只用了一个 ? 号 … 所以这个数组里面第一个数据就会去匹配这个 ? 号 … 可以定义一个 noteContent…

这个 note_content 里面的东西,一会儿,我们去让它从提交笔记的那个文本区域里面,动态的获得 …

这里要注意的就是,在 SQL 声明里面,不去直接指定数据 … 而是使用这种 ? 号,加数组匹配的方式 … 另外在真正的应用里面,你应该去筛选或者过滤一下这些要放在数据库里的数据 …

获得笔记内容

下面我们去获取到用户在表单里面输入的笔记内容 .. 先回到应用的页面看一下 … (#index.html) …

这个提交笔记的表单上 .. 有一个 note-form 的 ID … 使用这个 ID 我们可以得到这个表单对象 … 然后使用 elements … 加上这个表单里面的控件的名称 … 可以得到这个表单元素的值 …

笔记的内容,会来自这个名字是 note-content 的这个文本区域 …

回到 script.js …. 在最开始… 用一个 document.getElementById 获取到 note-form 这个表单 . … 把它命名为 noteForm … 这样在这个文件的其它的地方 … 直接使用 noteForm 就行了 …

// 获取到提交笔记的表单
var noteForm = document.getElementById("note-form");

再找到 submitNote() … 在这里,我们去定义 noteContent … 它的值是 noteForm 里面的 note-content 这个元素里的值 …

// 得到 note-form 表单里的 note-content 文本区域的值
var noteContent = noteForm.elements["note-content"].value;

测试

现在,我们的应用就可以动态获取到用户提交的笔记内容,然后把它插入到 noteapp 这个数据库里面了 … 下面我们去试一下 … 先保存一下 …

打开浏览器 … 刷新 ….

在文本区域里输入点内容 …. 测试一下笔记应用 … 点击 提交 ...

打开 开发者工具 … Resources … Web SQL … noteapp …. note …

在这个数据表里,你可以看到刚才提交的笔记内容 ..

插入数据到数据库里《 HTML5:Web SQL 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点