我正在尝试使用Jquerymobile-html5和websql / sqlite创建类别列表。
我在这里发布我的代码,希望有人看到我做错了。
//load the cats to choose a cat
function loadCatOptions() {
var option_str='';
option_str += '<option value="0" data-placeholder="true">Choose categorie</option>';
//option_str += '<option value="0">Top/ParentiD</option>';
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM categories', [], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
var r = results.rows.item(i);
var catID = r.categories_id;
}
var count =0;
while (count < catID+1){
count;
tx.executeSql('SELECT c.parent_id, c.categories_id, cd.categories_name, c.categories_image FROM categories c, categories_description cd WHERE c.categories_id ='+ count +' AND cd.categories_id ='+ count +' and cd.language_id ="1" ORDER BY sort_order, cd.categories_name', [], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
var r2 = results.rows.item(i);
option_str += "<option value=" + r2['categories_id'] + ">" + r2['categories_name'] + "</option>";
console.log('categoriesname='+ r2['categories_name']);
$("#parent_id").html(option_str).selectmenu('refresh', true);
}
});
count++;
}
});
});
}
控制台日志按名称显示所有项目,因此我确信数据库查询是正确的。
我可能花了几天时间来解决根本不存在的问题。
如果我只接受SELECT *查询并调用selectmenu,我可以看到列表中的所有categorie_id(当前由categories_id替换categories_name以使其工作)。
所以现在的问题是jquerymobile ??????????????
它不会在第二个数据库查询中读取option_str + =!
aaargg
上面的代码已使用修复程序进行更新。
答案 0 :(得分:1)
从你的问题:
问题已修复
旧代码:
option_str += "<option value=" + r2['categories_id'] + ">" + r2['categories_name'] + "</option>";
console.log('categoriesname='+ r2['categories_name']);
}
});
count++;
}
$("#parent_id").html(option_str).selectmenu('refresh', true);//Moved below closing tag of count++
});
});
}