Мне трудно обрабатывать передачу объекта AJAX назад. Я пытаюсь перебрать каждый объект и вывести каждое значение данных из каждого объекта.

Звонок AJAX:

$.ajax({
  type: "POST",
  url: "sample.url",
  data: JSON.stringify(SDdata),
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(data) {

  console.log(data)

    $('#SD_Title').html(data.PagedData[1].SD_Plan_Name);
    $.each(data, function() {
      $.each(data, function(index) {
        console.log(data.PagedData[index].SD_Plan_Name);
        $('#SD_Content').html(data.PagedData[index]);
      });
    });

  },
  failure: function(errMsg) {
      alert(errMsg);
  }

});

В console.logs бросать неопределенные ??

Данные, которые я получаю

Array[3]
  0:Object
    SD_Plan_CreatedDate : "11/01/2016"
    SD_Plan_ID : 15
    SD_Plan_Name : "Jeff Harris D1 Replacement"
    SD_Plan_Status : 3
    SD_Plan_TotalCost : 75219.56
    SD_Plan_UnitCount : 268
  1:Object
  2:Object

РЕДАКТИРОВАТЬ 1:

Console.log(data) output

  Object
    PagedData:Array[3]
      0:Object
        SD_Plan_CreatedDate:"11/01/2016"
        SD_Plan_ID:15
        SD_Plan_Name:"Jeff Harris D1 Replacement"
        SD_Plan_Status:3 
        SD_Plan_TotalCost:75219.56
        SD_Plan_UnitCount:268
        __proto__:Object
      1:Object
      2:Object
      length:3
      __proto__:Array[0]
  Total:3
  __proto__:Object
0
Charles L. 10 Янв 2017 в 21:25

3 ответа

Лучший ответ

Я исправил проблему, используя простой цикл for:

for( var i = 0; i < data.PagedData.length; i++){
  console.log(data.PagedData[i].SD_Plan_Name);
}
0
Charles L. 10 Янв 2017 в 20:50

Я не понимаю, зачем вам нужны вложенные циклы $.each(). Вы слишком глубоко погружаетесь в структуру данных. Я также не понимаю, почему вы используете индекс, а не предоставляете функции обратного вызова второй параметр-значение. Попробуйте следующее:

$.ajax({
  type: "POST",
  url: "sample.url",
  data: JSON.stringify(SDdata),
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(data) {

  $('#SD_Title').html(data.PagedData[1].SD_Plan_Name);
    console.log(data.PagedData); // make sure you've got good data
    $.each(data.PagedData, function(index, value) {
      console.log(value); // look at the value of a single item in the array
      console.log(value.SD_Plan_Name); // If the data structure is correct this should be the value you're looking for
      $('#SD_Content').html(value);
    });
},
failure: function(errMsg) {
  alert(errMsg);
}
1
dave 10 Янв 2017 в 19:25

Как вы говорите, ваши данные:

  Object
    PagedData:Array[3]
      0:Object
        SD_Plan_CreatedDate:"11/01/2016"
        SD_Plan_ID:15
        SD_Plan_Name:"Jeff Harris D1 Replacement"
        SD_Plan_Status:3 
        SD_Plan_TotalCost:75219.56
        SD_Plan_UnitCount:268
        __proto__:Object
      1:Object
      2:Object
      length:3
      __proto__:Array[0]
  Total:3
  __proto__:Object

Поэтому постарайтесь

$.ajax({
  type: "POST",
  url: "sample.url",
  data: JSON.stringify(SDdata),
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(data) {

    $.each(data.PagedData, function(index, value) {

      $.each(value, function(index1 , value1) {
        console.log(value1);// each value wll be printed like "11/01/2016" then 15 and so on
     });

   });

  },
  failure: function(errMsg) {
      alert(errMsg);
  }
});
0
codenut 11 Янв 2017 в 03:09