sql >> データベース >  >> RDS >> Mysql

JqueryオートコンプリートとPHP:オートコンプリートフィールドで選択したオプションに基づいて、mySQLデータベースからのデータを入力フィールドに入力します

    正確に作成しました この機能は私のアプリに組み込まれています。ここにはさらに複雑なレイヤーがあり、2つの郊外ルックアップ(自宅と職場の住所)があり、それぞれが一致する州と郵便番号のフィールドに入力されます。バックエンドはPHPではなくperlですが、これはクライアント側の処理には関係ありません。最終的に、バックエンドは次のようなハッシュの配列を含むJSON構造を返します。

    [ { "id":"...", "value":"...", "state":"...", "pcode":"..." }, ... ]
    

    idキーには郊外の名前が含まれ、valueキーには「JOLIETIL 60403」のような文字列が含まれているため、正しいセット データの数を1回選択し、異なる場所にある同じ名前の複数の町/郊外の問題を解決し、それを解決するためにコールバックを行います。

    選択すると、郊外(id)、州、およびpcodeの値が一致するパラメーターに挿入されます。

    次のコードも以前の結果をキャッシュします(キャッシュは自宅と職場のルックアップ間で共有されます)。

    $('#hm_suburb').addClass('suburb_search').attr(
             {suburb: '#hm_suburb', pcode: '#hm_pcode', state: '#hm_state'});
    $('#wk_suburb').addClass('suburb_search').attr(
             {suburb: '#wk_suburb', pcode: '#wk_pcode', state: '#wk_state'});
    var sub_cache = {};
    $(".suburb_search").autocomplete({
        source: function(request, response) {
            if (request.term in sub_cache) {
                    response($.map(sub_cache[request.term], function(item) {
                        return { value: item.value, id: item.id,
                                 state: item.state, pcode: item.pcode }
                    }))
                return;
            }
            $.ajax({
                url: suburb_url,
                data: "term=" + request.term,
                dataType: "json",
                type: "GET",
                contentType: "application/json; charset=utf-8",
                dataFilter: function(data) { return data; },
                success: function(data) {
                    sub_cache[request.term] = data;
                    response($.map(data, function(item) {
                        return {
                            value: item.value,
                            id: item.id,
                            state: item.state,
                            pcode: item.pcode
                        }
                    }))
                } //,
                //error: HandleAjaxError  // custom method
            });
        },
        minLength: 3,
        select: function(event, ui) {
            if (ui.item) {
                $this = $(this);
                //alert("this suburb field = " + $this.attr('suburb'));
                $($this.attr('suburb')).val(ui.item.id);
                $($this.attr('pcode')).val(ui.item.pcode);
                $($this.attr('state')).val(ui.item.state);
                event.preventDefault();
            }
        }
    });
    


    1. Ruby on Rails:データベースからアイテムをプルして、指定された順序で返す方法はありますか?

    2. Hibernate:インデックスを作成する

    3. Azure SQLデータベース管理のヒントとヒントの試験(DP-300)

    4. 条件に応じて異なる行のフィールドを組み合わせる