Usando el siguiente js, puedo obtener miembros. Necesito contar cada vez que obtengo un nuevo miembro de la base de datos. Eso no sé cómo hacerlo.

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 a las 14:37

3 respuestas

La mejor respuesta

Si cuenta + 1 cada vez que la función Ajax llama, entonces también contará cuando falle. Además, la pregunta dice "Necesito contar cada vez que obtengo un nuevo miembro de la db". La iteración de miembros parece estar sucediendo aquí:

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

Así que todavía declararía la variable fuera, pero count++ dentro de esta iteración de esta manera:

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

Es necesario declarar una variable fuera de la función y cada vez que la función ajax llama, contar +1 esta variable, al igual que esto :

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 a las 11:45

Al añadir esto:

 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 a las 11:46