我一直在完成本教程:http://www.mobilehtml5.com/post/401111526/tutorial-your-first-mobile-html5-app-offline-storage
我一直在使用它来创建一个简单的数据库来记录街机中的资金,其中一个表存储了每台机器的名称和金额。
我的问题是我不知道轻松编辑行的最佳方法? html5rocks.com给了我一些想法,但不合适。
有人能用这个让我走上正轨吗?我不知道正确的方法,是否有某种游标类型的方式这样做?或者我应该有一个循环来将值加载到输入表格框,然后更新这些?
任何帮助都很棒,我已经包含了下面的代码,所以你可以看到我在做什么。
<!DOCTYPE html>
<html>
<head>
<title>Machine Total Calculator</title>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.4.1");
</script>
<script>
var db = window.openDatabase("Machines", "", "Arcade Machines", 1024*1000);
function insertMachine(name, amount) {
db.transaction(function(tx) {
tx.executeSql('INSERT INTO groupOne (name, amount) VALUES (?, ?)', [name, amount]);
});
}
function renderResults(tx, rs) {
e = $('#status');
e.html("");
for(var i=0; i < rs.rows.length; i++) {
r = rs.rows.item(i);
e.html(e.html() + 'id: ' + r['id'] + ', Name: ' + r['name'] + ', Amount: ' + r['amount'] + '<br>');
}
}
function renderRecords(name) {
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM groupOne', [], renderResults);
});
}
$(document).ready(function() {
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS groupOne(id INTEGER PRIMARY KEY, name TEXT, amount DECIMAL)', []);
});
$('#machine_form').submit(function() {
insertMachine($('#name').val(), $('#amount').val());
renderRecords();
return false;
});
renderRecords();
});
</script>
</head>
<body>
<form method="get" id="machine_form">
<div>
<input type="name" id="name" placeholder="Enter Machine Name" size="30"/>
<input type="number" current id="amount" placeholder="Amount" name="amount" size="15" />
<input type="submit" value="Add Machines" />
</div>
</form>
<div id="status">
</div>
</body>
</html>
答案 0 :(得分:0)
据我了解您的问题:您必须使用与例如在PHP + MySQL中。您必须按值将整个记录加载到INPUTs值中,记住记录的ID(例如,在隐藏的INPUT中)。在某些UPDATE按钮的onclick事件处理程序中,您将获取这些值以及ID,并安排SQL UPDATE查询(“UPDATE groupOne SET name = ...,value = ... WHERE id = ...”)
不,这个SQL中没有“光标方式”。只需记住记录的ID,并在UPDATE的WHERE子句中使用它。