我正在使用PhoneGap SQLite,我遇到的问题是数据没有显示。警报(脚本)显示数据在那里,但它没有显示在主屏幕上。帮我弄清楚我在代码中犯了什么错误。
提前致谢。
在jQuery中:
function get_Emp_List() {
$("#employee").empty();
$(location).attr('href', '#emp1');
$.support.cors = true;
$.ajax({
type: "GET",
url: "one.html",
contentType: "text/xml",
dataType: "xml",
data: "",
crossDomain:true,
success: function (data) {
$(data).find("employee").each(function () {
var emp_id = $(this).find('id').text();
var emp_name = $(this).find('short_name').text();
db.transaction(function(transaction) {
transaction.executeSql('INSERT INTO Envy_Emp VALUES((SELECT max(_idEE)+1 FROM Envy_Emp),"'+emp_id+'","'+emp_name+'")',nullHandler,errorHandler);
});
});
ids_Dynamic_Emp_List();
return false;
},
error: function (data) {
alert("error");
}
});
}
/* end Employee list script */
/*ids_Dynamic_Emp_List() method coding Start*/
function ids_Dynamic_Emp_List(){
/*sql start*/
/*sqlite code for dynamic Emp list*/
db.transaction(function(tx){
tx.executeSql('SELECT * FROM Envy_Emp;', [],
function(tx,results){
if (results != null && results.rows != null) {
var myLen=results.rows.length;
for (var i = 0; i < results.rows.length; i++) {
var for_Name = results.rows.item(i).Envy_Emp_Name;
var for_ID = results.rows.item(i).Envy_Emp_ID;
var for_E_ID=results.rows.item(i)._idEE;
/*create table list Dynamically using Sqlitedata base */
var scripts = "<a href='#' data-role='button' data-theme='b' data-inline='true' onclick='get_Menu_List(id);' id='"+for_E_ID+"'>"+for_Name+"</a>";
alert(scripts);
$(".employee1")
.append(scripts)
.trigger('create');
/*create table list Dynamically using Sqlitedata base End*/
}
}
},errorHandler);
}
,errorHandler,nullHandler);
return;
}
在HTML中:
<div data-role="page" id="emp1">
<div date-role="content">
<div id="employee" class="employee1"/>
</div>
</div>
答案 0 :(得分:1)
你可以试试这个。
在此函数中调用函数并传递数据,而不是附加代码。在被调用的函数中,追加传递的数据。
function ids_Dynamic_Emp_List(){
/*sql start*/
/*sqlite code for dynamic Emp list*/
db.transaction(function(tx){
tx.executeSql('SELECT * FROM Envy_Emp;', [],
function(tx,results){
if (results != null && results.rows != null) {
var myLen=results.rows.length;
for (var i = 0; i < results.rows.length; i++) {
appendScripts(results.rows.item(i)); /*call function*/
/*create table list Dynamically using Sqlitedata base End*/
}
}
},errorHandler);
},errorHandler,nullHandler);
return;
}
然后在这里附加数据,
/*function appends data to div*/
function appendScripts(values){
var for_Name = values.Envy_Emp_Name;
var for_ID = values.Envy_Emp_ID;
var for_E_ID= values._idEE;
/*create table list Dynamically using Sqlitedata base */
var scripts = "<a href='#' data-role='button' data-theme='b' data-inline='true' onclick='get_Menu_List(id);' id='"+for_E_ID+"'>"+for_Name+"</a>";
$(".employee1").append(scripts).trigger('create');
}
<强>更新强> 找到html 5的问题,将html更改为,
<div data-role="page" id="emp1">
<div date-role="content">
<div id="employee" class="employee1"></div>
</div>
</div>
答案 1 :(得分:-1)
阿图尔,
从评论中的讨论和看后 您的以下代码行
$(".employee1").append(scripts).trigger('create');
以下解决方案之一适合您。
employee1
如果您使用类选择器找到HTML元素,即 .employee1 ,那么你必须在某处定义该类。
或强>
$("#employee").append(scripts).trigger('create');
否则使用id选择器。
希望有所帮助。