Таблицы данных Установите флажок в режиме пагинации не работает - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть таблица в mysql, которая содержит имя, адрес электронной почты и номер мобильного телефона. Я отображаю эту таблицу как таблицу данных, а значения для заполнения таблицы отображаются с помощью сценария PHP. Для каждой строки в таблице я также включил флажок в качестве одного из столбцов. Ниже приведен код:

interviewerQuery = "select Name,emailid,mobileno from interviewerInvite where clientId=(select idclientLogin from clientLogin where clientLoginName='$usrname')";
$intQuery = mysqli_query($connect, $interviewerQuery);

<div class="row">
   <div class="col-lg-8 col-md-8 col-sm-8">
     <form method = "POST"  id='addinvestigators'>
       <div class="table-responsive">
          <table class="table table-bordered" id="interviewrSelectTable" width="100%" cellspacing="0">
          <thead>
             <tr>
                 <td>NO</td>
                 <td>NAME</td>
                 <td>EMAIL ID</td>
                 <td>MOBILE NO</td>
                 <td>SELECT</td>
             </tr>
          </thead>
       <tbody>
       <?php
           $count=1;
           while ($row = mysqli_fetch_array($intQuery)) {
               echo "<tr style='min-height:20px'>";
               echo "<td style='text-align:center;height:20px' id='count'>$count</td>";
               echo "<td id='firstName'>".$row['Name']."</td>";
               echo "<td id='emailid'>".$row['emailid']."</td>";
               echo "<td id='mobileno'>".$row['mobileno']."</td>";
               echo "<td style='text-align:center'><input style='width:20px;height:16px' type='checkbox' id='".$row['emailid']."' name='chxbx' value='".$row['emailid']."' > </td>";
               echo "</tr>";
               $count++;                                            
            }
         ?>
         </tbody>
       </table>
     </div>


  <div class="row">
    <div class="col-lg-4 col-md-4 col-sm-4">
       <input type="button" name="data" onclick="includeInterviewers()" class="btn-primary" style="height:35px" value="ADD INTERVIEWERS TO PROJECT"/> 
    </div>
    <div class="col-lg-4 col-md-4 col-sm-4">
    </div>
    <div class="col-lg-4 col-md-4 col-sm-4">
    </div>
 </div>

Чтобы отобразить таблицу в виде таблицы данных, я использую следующее:

  $(document).ready(function() {
          var table = $('#interviewrSelectTable').DataTable( {
              columnDefs: [
                  { width: '10%', targets: 0 },
                  { width: '30%', targets: 1 },
                  { width: '30%', targets: 2 },
                  { width: '20%', targets: 3 },
                  { width: '10%', targets: 4 },
              ],
              fixedColumns: true,
              searching:true,
              info:false,
              lengthChange:false,
             draw:false,
             responsive:true,
              pageLength:10
          } );
      } );

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

var email = [];
$(document).ready(function () { 
          $("input[name='chxbx']").change(function() {
          var checked = $(this).val();
            if ($(this).is(':checked')) {
              email.push(checked);
            }else{
            email.splice($.inArray(checked, email),1);
            }
          });
        });


function includeInterviewers() {
          var eml = JSON.stringify(email);
          if (projectVal && email.length > 0) {
            $.post('addInvestigatorsToProject.php', {'project':projectVal,'email':eml},         function(dat) {
              alert(dat);
              //document.getElementsByName("chxbx").checked = false;
          })  
          } else if(!projectVal) {
            alert("Please select a project!");
          } else if(email.length == 0) {
            alert("You must select atleast 1 interviewer!");
          }
        }

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я нажимаю на флажок на второй странице, они не возвращают идентификатор электронной почты, связанный со строкой, и сохраняют отображение сообщения об ошибке, которое я вызвал через Javascript, когда ни одна из строк не выбрана ..

...