0

私の質問を読んでくれてありがとう。私はPhoneGapを使用してモバイルアプリケーションに取り組んでいます。HTML 5 データベースを使用してデータを保存しています。

私のテーブルの 1 つは、Companyを持っているものcom_id & com_nameです。これを使用して単純な検索テキストボックスを作成しました。これは、静的配列と動的配列で適切に機能しています。

これは、データベースからレコードを取得し、オートコンプリートに設定するコードの一部です。

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)する方法やそのために何をすべきかわかりません。

この問題を解決する方法を教えてください。

4

2 に答える 2

2

1 つではなく 2 つの配列を使用します。

  • com_array_name : その for ループを介してその中に名前をプッシュします
  • com_array_id : 同じ for ループを介して ID をプッシュします。

オートコンプリートプラグインでは、

  • sourceとして 与えるcom_array_name
  • そしてselect財産で、与えるalert(com_array_id[com_array_name.indexOf(ui.item.value)]);

これは、名前が配列内で一意である場合に機能します。

于 2013-09-10T06:54:02.427 に答える
0

Javaのように、ある種のマップを簡単に作成します。
新しいオブジェクトを作成し、会社名ごとにプロパティまたはインデックスを追加します (これは js の IMHO と同じです)。そのため、会社名が一意である場合、ID を会社名で解決できます。

var myMap = {};
// in your loop:
myMap[com_name]=com_id;
// access:
alert(myMap["Example Company Inc."]);
于 2013-09-10T05:23:24.847 に答える