En utilisant les js suivants, je peux obtenir des membres. Je dois compter chaque fois que je reçois un nouveau membre de la base de données. Que je ne sais pas faire.

function intialize_memberDropDown(rowNumber, subrowNumber) {
    $.ajax({
        type: "GET",
        url: "/Member/GetAllMember/",
        cache: false,
        success: function (data) {
            debugger
            var countryHTMLString = "<option value ='0'>Select Member</option>";
            if (data.isSucess) {
                $.each(data.data, function (index, item) {
                    countryHTMLString += "<option value ='" + item.memberid + "'>" + item.membername + "</option>";
                });
            }
            $("#memberid" + rowNumber + subrowNumber + "").html(countryHTMLString)
        }, error: function (err) {
            debugger
        }
    });
}
1
DinupaChamin 4 nov. 2019 à 14:37

3 réponses

Meilleure réponse

Si vous comptez + 1 à chaque appel de la fonction Ajax, alors vous comptez également en cas d'échec. De plus, la question dit "Je dois compter chaque fois que j'obtiens un nouveau membre de la base de données". L'itération des membres semble se produire ici:

$.each(data.data, function (index, item) {
countryHTMLString += "<option value ='" + item.memberid + "'>" + 
item.membername + "</option>";
});

Donc, vous déclareriez toujours la variable à l'extérieur, mais vous compteriez ++ à l'intérieur de cette itération comme ceci:

$.each(data.data, function (index, item) {
count++;
countryHTMLString += "<option value ='" + item.memberid + "'>" + item.membername + "</option>";
});
1
Samet M. 4 nov. 2019 à 11:52

Vous devez déclarer une variable en dehors de la fonction et chaque fois que la fonction ajax appelle, compter +1 cette variable, comme ceci:

var counter = 0;
function intialize_memberDropDown(rowNumber, subrowNumber) {
counter +=1;
    $.ajax({
        type: "GET",
        url: "/Member/GetAllMember/",
        cache: false,
        success: function (data) {
            debugger
            var countryHTMLString = "<option value ='0'>Select Member</option>";
            if (data.isSucess) {
                $.each(data.data, function (index, item) {
                    countryHTMLString += "<option value ='" + item.memberid + "'>" + item.membername + "</option>";
                });
            }
            $("#memberid" + rowNumber + subrowNumber + "").html(countryHTMLString)
        }, error: function (err) {
            debugger
        }
    });
}
1
Ilia Afzali 4 nov. 2019 à 11:45

En ajoutant ceci:

 var rowCount = $('#memberid').html(data).find('tr').length;


function intialize_memberDropDown(rowNumber, subrowNumber) {
    $.ajax({
        type: "GET",
        url: "/Member/GetAllMember/",
        cache: false,
        success: function (data) {
            debugger
            var countryHTMLString = "<option value ='0'>Select Member</option>";
            if (data.isSucess) {
                $.each(data.data, function (index, item) {
                    countryHTMLString += "<option value ='" + item.memberid + "'>" + item.membername + "</option>";
                });
            }
// tr is table row table html
 var rowCount = $('#memberid').html(data).find('tr').length;

            $("#memberid" + rowNumber + subrowNumber + "").html(countryHTMLString)
        }, error: function (err) {
            debugger
        }
    });
}
1
Mojtaba Nava 4 nov. 2019 à 11:46