0

jQueryを使用してループを介して10人の顧客を追加するには、AJAXリクエストが必要です。

最初の顧客が追加されると、「10人中1人が追加されました」と表示されます。2番目の顧客が追加されると、「2of10added」と表示されます。等々。

ただし、次の関数は最後のメッセージ「10/10が追加されました」のみを表示し、これらの10人の顧客が追加されている間ブラウザはビジー状態を維持します。

function addCustomer(total) 
{
    var addedIndex = parseInt($("#added-index").val());

    $.ajaxSetup({cache : false});
    $.ajax({
        type: "POST",
        url: "add_customer.php",
        data: "added_no=" + document.getElementById("added-index").value,
        global: false,
        async: false,
        cache: false,
        success: function(html){
            $("#added-index").val(addedIndex + 1);
            addedIndex = parseInt($("#added-index").val());

            if (addedIndex < total) {
                addCustomer(total);
            }
            else {
                $("#cc-msg").html(html);
            }           
        }
    });
}
4

2 に答える 2

0

.append() を使用する

$("#cc-msg").append(html + '<img src="img/ajax_loader.gif" width="35" hspace="150" height="35" vspace="7" align="middle" >');
于 2013-02-27T15:43:02.287 に答える
0

Anthony Gristのコメントによると 、この AJAX リクエストにはasync: falseパラメーターを指定しないでください。したがって、答えは次のとおりです。

function addCustomer(total) 
{
    var addedIndex = parseInt($("#added-index").val());

    $.ajaxSetup({cache : false});
    $.ajax({
        type: "POST",
        url: "add_cc.php",
        data: "added_no=" + document.getElementById("added-index").value,
        global: false,
        cache: false,
        success: function(html){
            $("#added-index").val(addedIndex + 1);
            addedIndex = parseInt($("#added-index").val());

            if (addedIndex < total) {
                addCustomer(total);
            }
            else {
                $("#cc-msg").html(html);
            }    
        }
    });    
}
于 2013-03-01T11:57:36.937 に答える