Как получить выбранные флажки из таблицы в несколько строк и столбцов и отправить как ответ - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть таблица выписки по счету (сопоставленная с ответом) с датой и двумя другими столбцами, имеющими флажки.

Просмотр (HTML)

<table>
  <tr>
    <th>Statement Period</th>
    <th>Mail Address</th>
    <th>Email Address</th>
  </tr>
  <tr>
    <td>Oct 2018</td>
    <td><input type="checkbox"></td>
    <td><input type="checkbox"></td>
  </tr>
  <tr>
    <td>Nov 2018</td>
    <td><input type="checkbox"></td>
    <td><input type="checkbox"></td>
  </tr>
  <tr>
    <td>Dec 2018</td>
    <td><input type="checkbox"></td>
    <td><input type="checkbox"></td>
  </tr>
</table>
<button ng-click="getSelectedData">Proceed</button<

Основываясь на $ index (идентификатор массива), я хочу получить выбранные флажки из каждой строки и отправить в виде массива, как показано ниже в формате JSON;

Примечание: выбранный флажок представляет "Y", а другой представляет"N"

Массив JSON (ожидаемый ответ)

[
  {
    "isEmail": "Y",
    "isMail": "N",
    "month": "12",
    "year": "2018"
  },
  {
    "isEmail": "Y",
    "isMail": "N",
    "month": "10",
    "year": "2018"
  }
]

Я хочу отправить ответ POST, как указано выше, с парой параметров (адрес электронной почты иФизический адрес).Я пробовал цикл for, но, кажется, удача исходит от этого.

Контроллер JS

$scope.sendStatementList = function(i) {
  var listLenght = $scope.accountStatementList.lenght;

  for (var i = 0; i < listLenght; i++) {
    var selectItem = $scope.accountStatementList[i];

    return selectItem;
  }

  console.log(selectItem);
};

Я пробовал несколько подходов, но все еще потеряи понятия не имею о правильном подходе.Любая помощь будет высоко ценится.

PS Вот плункер ( демо ) для моего запроса.

1 Ответ

0 голосов
/ 21 декабря 2018

Попробуйте:

 https://next.plnkr.co/edit/6GLQtI85vPE0V98x

Просто создайте другой массив, сопоставленный с существующим:

 $scope.finalResponse = $scope.statementListRespone.map(function(st){
    return { 
      "month" : $filter('date')(st, "MM") , 
      "year" : $filter('date')(st, "yyyy"), 
      "isMail": "N", 
      "isEmail": "N"};
  });

И обновите разметку, привязав ее к другому массиву, например:

<input type="checkbox" id="email-{{$index}}" name="email" ng-modal="email" 
    ng-model="finalResponse[$index]['isEmail']" 
    ng-true-value="'Y'" ng-false-value="'N'"> 

Итак, при нажатии кнопки: вы можете просто отправить массив finalResponse .

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