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

//assume I have the response data as follows:
var response[] = { blake,blake@gmail.com,fofehu45555,ontario,toronto }, {flake,flake@gmail.com,kokehu45555,ontario,toronto}; 

for(i=0; i<response.data.length; i++){

$("#table").append('<input type="checkbox"'"<tr class='tr'> <td> "+response.data[i].user_name+" </td> <td> "+response.data[i].userr_contact+" </td> <td> "+response.data[i].user_license+" </td> <td> "+response.data[i].userr_email+" </td> <td> "+response.data[i].state+" </td> <td> "+response.data[i].city);}
<button onclick="myfunction();">Go</button>
<table id="table" border=1>
  <tr>
   <th> Name </th>
   <th> contact </th>
   <th> license </th>
   <th> email </th>
   <th> state </th>
   <th> city </th>
  </tr>
</table>

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

Сложность, с которой я борюсь, это то, что я хочу получить адрес электронной почты выбранных флажков, сохраненных в переменной / массиве

Ответы [ 2 ]

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

Предположим, ваш ответ в следующем формате:

var response = [
  { 
    user_name: 'blake',
    user_email: 'blake@gmail.com',
    user_licence: 'fofehu45555',
    user_state: 'ontario',
    user_city: 'toronto' 
  },
  { 
    user_name: 'flake',
    user_email: 'flake@gmail.com',
    user_licence: 'kokehu45555',
    user_state: 'ontario',
    user_city: 'toronto' 
  }
];

еще один читаемый способ создать то, что вы хотите:

response.forEach(function(user) {
    var tr = $('<tr/>');
    var nameTd = $('<td/>', {text: user.user_name});
    var checkbox = $('<input />', { type: 'checkbox', value: user.user_email }).prependTo(nameTd);
    nameTd.appendTo(tr);
    var contactTd = $('<td/>', {text: user.user_contact}).appendTo(tr);
    var licenceTd = $('<td/>', {text: user.user_licence}).appendTo(tr);
    var emailTd = $('<td/>', {text: user.user_email}).appendTo(tr);
    var stateTd = $('<td/>', {text: user.user_state}).appendTo(tr);
    var cityTd = $('<td/>', {text: user.user_city}).appendTo(tr);
    $('table tbody').append(tr);
});

Ваш HTML должен выглядеть примерно так:

<html>
  <body>
    <table>
      <thead>
        <tr>
           <th> Name </th>
           <th> contact </th>
           <th> license </th>
           <th> email </th>
           <th> state </th>
           <th> city </th>
        </tr>
      </thead>
      <tbody>

      </tbody>
    </table>
  </body>
</html>

JSFiddle

Тогда вы можете получить электронные письма проверенных пользователей, например:

var selected = $('input:checkbox:checked');
var emails = [];
selected.each(function(){
    emails.push($(this).val());
});
0 голосов
/ 01 сентября 2018

Предположим, у меня есть данные ответа следующим образом

Хью ... Нет. Потому что я чувствую, что это твоя проблема.
В противном случае ответ таков: получите серверный скрипт, который выдает такой искаженный «ответ», и исправьте его.

Так что я много переделал там, чтобы показать вам рабочий пример.

Как упоминалось в комментариях, объявление response, являющееся отправной точкой, является недействительным. Я структурировал его «общеизвестным» способом ... который является объектом, содержащим массив объектов.

У объектов есть подходящие имена ... К которым вы обращались в приложении jQuery. Поэтому я добавил их.

Затем в приложении вы поставили флажок за пределами tr ... Это не хорошо. Я поместил его в ячейку с именем ... Но я бы предпочел добавить для него столбец таблицы. Вам решать.

У вас также есть проблема с кавычками в этой строке для добавления.

$("#goBtn").on("click",function(){

  //assume I have the response data as follows:
  var response = {
    data:[
        {
          user_name: "blake",
          user_email: "blake@gmail.com",
          user_contact: "fofehu45555",
          state: "ontario",
          city: "toronto",
          user_license: ""
        },
        {
          user_name: "flake",
          user_email: "flake@gmail.com",
          user_contact: "kokehu45555",
          state: "ontario",
          city: "toronto",
          user_license: ""
        }
      ]
  };

  for(i=0; i<response.data.length; i++){

    $("#table").append("<tr class='tr'> <td> <input type='checkbox'> "+response.data[i].user_name+" </td> <td> "+response.data[i].user_contact+" </td> <td> "+response.data[i].user_license+" </td> <td> "+response.data[i].user_email+" </td> <td> "+response.data[i].state+" </td> <td> "+response.data[i].city);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="goBtn">Go</button>
<table id="table" border=1>
  <tr>
   <th> Name </th>
   <th> contact </th>
   <th> license </th>
   <th> email </th>
   <th> state </th>
   <th> city </th>
  </tr>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...