Таблица TD Rowspan не работает с Ajax Jquery - PullRequest
0 голосов
/ 17 сентября 2018

пожалуйста, посмотрите, можете ли вы мне помочь.Код:

            var th_table = $('#table-id');
            $(data).each(function (index, th) {

                html = '<tbody>'
                    + '<tr>'
                    + '<td rowspan="2" class="text-left">' + th.MONTHNAME + '</td>'
                    + '<td class="text-left">' + th.CATEGORY + '</td>'
                    + '<td class="text-left">' + th.NOOFDAYS + '</td>'
                    + '</tr>'
                    + '</tbody>';
                th_table.append(html);
            });

Результат

Month   Category   Days
Jan     CAT1       2
Jan     CAT2       3
Jan     CAT3       1
Feb     CAT1       2
Feb     CAT2       3
Mar     CAT3       1

мой желаемый результат

Month   Category   Days
Jan     CAT1       2
        CAT2       3
        CAT3       1
Feb     CAT1       2
        CAT2       3
Mar     CAT3       1

, но ajax не распознан в строке ... пожалуйста, помогите

1 Ответ

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

Вы можете изменить свой код, как показано ниже:

var th_table = $('#table-id');
var tmpMonth;
$(data).each(function (index, th) {
   var html = '';
   if (tmpMonth !== th.MONTHNAME) {
      html = '<tr>'
           + '<td rowspan="2" class="text-left">' + th.MONTHNAME + '</td>'
           + '<td class="text-left">' + th.CATEGORY + '</td>'
           + '<td class="text-left">' + th.NOOFDAYS + '</td>'
           + '</tr>';   
      tmpMonth = th.MONTHNAME;
   } else {
      html = '<tr>'
           + '<td class="text-left">' + th.CATEGORY + '</td>'
           + '<td class="text-left">' + th.NOOFDAYS + '</td>'
           + '</tr>';  
   }

   th_table.append(html);
});

Обратите внимание, что данные ДОЛЖНЫ быть отсортированы по MONTHNAME .

или группеваши данные по MONTHNAME и цикл сгруппированных результатов.

var groupedResult = _.groupBy(data, function(d) { return d.MONTHNAME; });
_.forEach(groupedResult, funcation(values, key) {
  // key is your MONTHNAME
  // values is an array
  html = '<tr>'
           + '<td rowspan="' + values.length + '" class="text-left">' + values[0].MONTHNAME + '</td>'
           + '<td class="text-left">' + values[0].CATEGORY + '</td>'
           + '<td class="text-left">' + values[0].NOOFDAYS + '</td>'
           + '</tr>';   
  th_table.append(html);

  for(var i = 1; i < values.length; i++ ){
    html = '<tr>'
           + '<td class="text-left">' + values[i].CATEGORY + '</td>'
           + '<td class="text-left">' + values[i].NOOFDAYS + '</td>'
           + '</tr>';   
    th_table.append(html);
  }

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