我正在寻找访问存储在我从 XML 中解析出来的数据库中的信息。我正在使用 phonegap (cordova 2.2.0)。我在单击导航栏时调用 queryDB() 以调用该函数以使用从 XML 解析的信息填充 div。我的问题是没有显示信息。
有人知道为什么吗?下面是我的代码:
点击时
<a href="#acceptedOrders" onclick("queryDB();")> <img src="Images/acceptedOrders.gif" width="25%"> </a>
这是一个将 XML 读入数据库的 javascript 函数:
var db = openDatabase('PhoneGap_db', '1.0', '', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS orders (id unique, city, state, zip)');
});
db.transaction(function (tx) {
tx.executeSql('INSERT INTO orders (id, city, state, zip) VALUES (orderId,city,state,zip)');
});
$.ajax({
type: "GET",
url: "testOrders.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('order').each(function(){
orderId = $(this).find("orderId").text();
city = $(this).find("city").text();
state = $(this).find("state").text();
zip = $(this).find("zip").text();
db.transaction(function (tx) {
tx.executeSql('INSERT INTO orders (id, city, state, zip) VALUES ('+ orderId +', '+ city + ', ' + state + ', ' + zip + ')');
});
});
}
});
这是我的阅读脚本(不工作)
function queryDB(tx) {
tx.executeSql('SELECT orderId FROM orders', [], querySuccess, errorCB);
}
function querySuccess(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
$('#acceptedOrdersContent').append('<li><a href="#CompleteOrderInfo">'+results.rows.item(i).orderId+'</a></li>').listview("refresh");
}
};
function errorCB(err) {
console.log("Error processing SQL: "+err.code);
}
这是一个示例 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<orders>
<order>
<orderId>123456789</orderId>
<city>Cincinnati</city>
<state>Ohio</state>
<zip>45451</zip>
</order>
</orders>
感谢大家!