Перебрать значения AJAX - PullRequest
       3

Перебрать значения AJAX

0 голосов
/ 19 сентября 2018

У меня есть некоторые значения, которые возвращаются в ajax из бэкэнда.Проблема в этом коде состоит в том, что когда я выполняю console.log (myRows), значения в ячейках не определены.

  $(document).on('click', ".myButton", function () {



        $.ajax({
            type: "POST",
            url: "Administration.aspx/GetMyCollection",
            data: JSON.stringify({ 'Parameter': Parameter }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                if (data.d.length > 0) {
                    var myRows = "";

                    $.each(data, function (i, values) {

                        values.ObjectID;
                        values.ObjectName;
                        values.ObjectValue;
                        values.Object;
                        console.log(values);

                        myRows += "<tr><td>" + values[1].ID + "</td><td>" + values[1].ObjectName + "</td><td>" + values[1].ObjectValue + "</td><td>" + values[1].Object + "</td></tr>";
                        console.log(myRows);
                    });

                }
                console.log("Saved!");
            },
            error: function () {
                console.log("Not Saved!");
           }

        });
    });

Но когда я изменяю код и добавляю значения [1], значения отображаются правильно.

 myRows += "<tr><td>" + values[1].ID + "</td><td>" + values[1].ObjectName + "</td><td>" + values[1].ObjectValue + "</td><td>" + values[1].Object + "</td></tr>";

Мне нужна помощь, чтобы изменить код, чтобы он перебрал все 9 (от 1 до 9) значений и поместил результаты в ячейки myRows, чтобы можно было отобразить все значения.

код Json:

d   […]
0   {…}
ObjectID      1
ObjectName    Vegas
ObjectValue   234
Object        Arizona
1   {…}
ObjectID      2
ObjectName    Chicago
ObjectValue   211
Object        Montana
2   {…}
ObjectID      3
ObjectName    Livepool
ObjectValue   123
Object        London
... 

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

используйте функцию, подобную этой, чтобы создать строку tr

var myRows = "";
data.forEach(function (values,key) {
    myRows += "<tr><td>" + values.ID + "</td><td>" + values.ObjectName + "</td><td>" + values.ObjectValue + "</td><td>" + values[1].Object + "</td></tr>";
    console.log(myRows);
});
0 голосов
/ 19 сентября 2018

Вы не перебираете нужный элемент - $.each(data должно быть $.each(data.d, поскольку d содержит массив.Затем при каждом запуске цикла values будет представлять один отдельный объект из массива, и вы можете удалить [1] из своего кода.

Также values.ID должно быть values.ObjectID Я думаю, основываясь на образце данных, который вы даете в вопросе - ни у одного из ваших объектов нет свойства "ID".

Наконец, я взялсвобода перемещения console.log(myRows); после окончания цикла - тогда вы просто увидите всю строку один раз, а не будете повторять ее каждый раз с добавлением дополнительного бита, что может сбить с толку.

$.each(data.d, function (i, values) {
  console.log(JSON.stringify(values));
  myRows += "<tr><td>" + values.ObjectID + "</td><td>" + values.ObjectName + "</td><td>" + values.ObjectValue + "</td><td>" + values.Object + "</td></tr>";
});
console.log(myRows);
0 голосов
/ 19 сентября 2018

Когда вы перебираете массив, values будет содержать объект.Следовательно, вам не нужно использовать values[i] или values[1].Кроме того, кажется, что у вас есть данные в data.d и, следовательно, должны повторяться на этом.

Следовательно, вы можете обновить свой код следующим образом:

$.each(data.d, function (i, values) {
  myRows += "<tr><td>" + values.ObjectID + "</td><td>" + values.ObjectName + "</td><td>" + values.ObjectValue + "</td><td>" + values.Object + "</td></tr>";
});
console.log(myRows);

Примечание , добавьте свой журнал после блока each, чтобы увидеть полный набор строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...