3

300 のフィールドを持つ従業員属性に関する巨大なフォームがあります。

管理者が従業員の属性を編集する場合は、編集ページに移動します。このフォームは、データベースから動的に印刷されます。

ユーザーはドロップダウンから従業員を選択し、それを dropdown1 と呼びます。次に、ドロップダウン 1 の変更イベントにバインドされた jquery ajax 呼び出しを使用して、JSON 配列からフォームにデータが取り込まれます。このようにして、299 個のフィールドが正しく入力されます。

ただし、フォームにはさらに 2 つのドロップダウンが含まれています。それらをdropdown2とdropdown3と呼びましょう。

Dropdown2 は、データベースからのページ読み込み時に読み込まれます。

Dropdown3 は dropdown2 に関連しています。dropdown2 が変更されると、DIFFERENT onchange ajax 関数を使用して dropdown3 のリストが変更されます。最初は、ページ読み込み時の dropdown3 には「選択」リストが 1 つしかありません。

私の問題は、ドロップダウン 1 が変更されたときに、ドロップダウン 3 を除くフォーム内のすべてのフィールドにデータが入力されることです。

私が欲しいのは、jquery ajax呼び出しを使用してdropdown2で選択が変更されたとき、

  1. dropdown3 は、dropdown2 の値に従って設定する必要があります - 基本的に、dropdown2 を含む div の html を変更する必要があります (別の ajax 呼び出し内の ajax 呼び出し? )

  2. dropdown2で正しい値を選択する必要があります(1が機能する場合、この部分を処理できると思います)

私の質問が非常に長く、適切に説明できていないことをお詫び申し上げます。

    $(document).ready(function(){
    $("#adminobj0zb").delegate("#sel10", "change", function(e){
        $.getJSON("editempajax2.php?empid=" + $("#sel10").val(),
        function(data){
            $.each(data, function(i, item){
                if(item.field == "fname"){
                    $("#sel2").val(item.value);
                    //Here Make Second Ajax call and change content of div containing sel3 ... how ?
                }
                if(item.field == "mname"){
                    $("#sel3").val(item.value);
                }
            });
        });
    });
});
4

1 に答える 1

1

これは可能です。最初の呼び出しからコールバックとして AJAX 呼び出しを行うことができます。

$.ajax({
    url:"/echo/json/",
    data:xdata,
    type:"POST",
    success: function(data) {
        $.ajax({
            // config
            success: function(data2) {}; // do your stuff
        });
    }
});

同時に複数の AJAX 呼び出しが必要な場合は、遅延オブジェクトを使用できます: jQuery Deferred - チェーンされた ajax 呼び出しの結果を取得する

于 2013-07-30T15:09:22.767 に答える