感谢您阅读我的问题。我正在使用PhoneGap处理移动应用程序。 我正在使用HTML 5数据库来存储数据。
我的其中一个表格是Company
,其中com_id & com_name
。
我使用this创建了简单的搜索文本框。这对于静态&动态阵列。
这是我的一些代码,它从数据库中获取记录并在自动完成中设置。
function All_Company_QuerySuccess(tx, results) {
console.log("Returned rows = " + results.rows.length);
var com_array = []; // init array
//this will return user_id if user exist else return "no user"
if (!results.rowsAffected) {
for (var index = 0; index < results.rows.length; index++) {
var item = results.rows.item(index);
var com_id = item.com_id; // company id
var com_name = item.com_name; // company name
com_array.push(com_name) // add value into array
}
// assign drop down
$(function () {
$("#pur_com_text").autocomplete({
source: com_array,
select: function (event, ui) {
selected_company = ui.item.value;
alert(selected_company);
}
});
});
}
}
Html代码
<div data-role="fieldcontain">
<input name="" id="pur_com_text" placeholder="Search Company" value="" type="search" onClick="Get_All_Company()" />
</div>
虽然我将在搜索框中输入,但它会显示我的公司名称。
问题:
我希望选择company ID (com_id)
进行进一步的任务。我不知道我怎么能得到那个或我该怎么做。
请指导我如何解决这个问题。
答案 0 :(得分:2)
取两个数组而不是一个。
com_array_name
:通过for for循环推送名称com_array_id
:通过相同的for循环将id推入其中。在自动填充插件中,
source
作为com_array_name
select
属性中,提供alert(com_array_id[com_array_name.indexOf(ui.item.value)]);
如果名称在数组中是唯一的,这将有效。
答案 1 :(得分:0)
我会像在java中一样简单地创建某种地图 创建一个新对象并为每个公司名称添加一个属性或索引(在js中为恕我直言),因此如果公司名称是唯一的,您将能够使用公司名称解析该ID。
var myMap = {};
// in your loop:
myMap[com_name]=com_id;
// access:
alert(myMap["Example Company Inc."]);