如何解决如何从Phone-Gap中的新HTML获取ID以编辑索引数据库的数据
我有一个页面,显示了indexedDB的列表,然后我想在此页面上对其进行编辑,但我无法获得连接数据的ID,请帮帮我! index.html
<div id="two">
<form>
<input id="filterTable-input" data-type="search">
</form>
<table data-role="table" data-filter="true" data-input="#filterTable-input" class="ui-responsive">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Date/Time</th>
<th>Average meal</th>
<th>Service</th>
<th>Cleanliness</th>
<th>Food quality</th>
<th>Average Rating</th>
<th>Reporter</th>
<th>Note</th>
<th>Action</th>
</tr>
</thead>
<tbody id="ratingContent" class="ratingContent">
</tbody>
</table>
</div>
index.js 加载数据功能
function refreshTable() {
var objectStore = db.transaction("rating").objectStore("rating");
objectStore.openCursor().onsuccess = function(event) {
var cursor = event.target.result;
if (cursor) {
var name = cursor.value.name;
var type = cursor.value.type;
var date = cursor.value.date;
var average = cursor.value.average;
var service = cursor.value.service;
var cleanliness = cursor.value.cleanliness;
var food = cursor.value.food;
var reporter = cursor.value.reporter;
var keyPath = cursor.value.id;
var note = cursor.value.note;
var rating = cursor.value.ratingAverage;
var markup = "<tr id='report_"+keyPath+"'><td data-field='name' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ name + "</span></td><td data-field='type' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ type + "</span></td><td data-field='date' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ date + "</span></td><td data-field='average' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ average + "</span></td><td data-field='service' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ service + "</span></td><td data-field='cleanliness' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ cleanliness +"</span></td><td data-field='food' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ food +"</span></td><td data-field='reporter' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ rating +"</span></td><td data-field='reporter' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ reporter +"</span></td><td data-field='note' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ note+ "</span></td><td><input type='button' name='record' id='record' value='Delete' onclick='deleteData("+ keyPath +")'></td></tr>";
$("table tbody").append(markup);
cursor.continue();//go to next record
}
};
}
编辑数据功能 console.log('hhhh'+键)已定义。也许是这样,它有错误:js:200 Uncaught DOMException:无法在“ IDBObjectStore”上执行“ get”:没有指定键或键范围。
$('#ratingContent').on('blur','.ratingFeild',function(){
var newData = $(this).html();
var field = $(this).data('field');
var key = $(this).data('id');
console.log('hhhh'+ key);
var transaction = db.transaction(['rating'],"readwrite");
var store = transaction.objectStore("rating");
var request= store.get(key);
request.onsuccess = function() {
var data = request.result;
console.log(data)
if(field == 'name') {
data.name = newData;
} else if(field == 'type'){
data.type = newData;
}else if(field == 'date'){
data.date = newData;
}else if(field == 'average'){
data.average = newData;
}else if(field == 'service'){
data.service = newData;
}else if(field == 'cleanliness'){
data.cleanliness = newData;
}else if(field == 'food'){
data.food = newData;
}else if(field == 'reporter'){
data.reporter = newData;
}else if(field == 'note'){
data.note = newData;
}
var requestUpdate = store.put(data);
requestUpdate.onsuccess = function() {
alert('Update successfull!');
}
requestUpdate.error = function() {
alert('Error!');
}
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。