【发布时间】:2012-06-27 18:37:09
【问题描述】:
我似乎无法将用户输入的数据放入表格然后打印。
到目前为止,这是我的代码:
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
function submit() {
var input = document.getElementById("save_name").value;
localStorage.setItem("inputed_name", input);
var msg;
db.transaction(function (tx)
{
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log varchar(50))');
tx.executeSql('delete from LOGS'); // Clears table (for debugging)
tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, localStorage.inputed_name)');
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++) {
msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
document.querySelector('#status').innerHTML += msg;
}
}, null);
});
}
</script>
</head>
<body>
<div id="status" name="status">Status Message</div>
<p>Enter data: <input type="text" id="save_name" name="inputed_name" /><br/></p>
<p><button onclick="submit()" type="button">Submit Data</button></p> <!--Should print data from the table-->
</body>
</html>
我从here得到了这个“模板”/开始
已解决
现在我想在我的表中添加两个变量,原始日志变量和第二个用作时间戳
function submit()
{
var input = document.getElementById("save_name").value;
var msg;
var time_stamp = new Date();
db.transaction(function (tx)
{
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id auto_increment, date_time varchar(128), log varchar(64))');
tx.executeSql('INSERT INTO LOGS (log, date_time) VALUES (?, ?)', [input, time_stamp]); // <--Problem here!
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
});
}
其余代码同上。 我认为这会起作用,但是当我测试它时,表中没有任何内容。
【问题讨论】:
-
尽管我不知道这是用于什么数据库(并且像 Mark Byers 一样想知道),但我认为问题与插入查询中的
localStorage.inputed_name引用有关. -
@MarkByers:看起来像是基于 Sqlite 的 JavaScript 浏览器中的本地存储,用于所有意图和目的。
-
@Mitch:
db来自哪里?此外,显示您的 HTML。您不能将getElementById与元素中的name属性一起使用。 -
科里是这么说的。 @AndriyM 我怀疑这是问题所在,但我找不到将变量插入表中的方法
-
@MitchellByrd:请参阅下面的答案。您需要“参数化”您的输入。
标签: javascript sql html