Как связать checkbox со строкой напротив?

Всем привет! Возник вопрос, как связать чекбокс со строкой? Код таблицы:
<!DOCTYPE html>
<html>
<head>
  <title>Home</title>
  <link rel="stylesheet" type="text/css" href="css/main_3.css">
</head>
<body>
     <button> Delete </button>   
     <button> Select All</button> 
    <table>
      <tr>
        <th><input type="checkbox" id="checkall"></th>
        <th>Name</th>
        <th>Last login</th>
        <th>Status</th>
      </tr>
<?php 
  $db = mysqli_connect('localhost', 'root', '', 'registration');
  $query = "SELECT*FROM users WHERE id>0";
  $result = mysqli_query($db, $query) or die (mysqli_error($db));
  for ( $data = []; $row = mysqli_fetch_assoc($result); $data[] = $row );
  $result='';
  foreach ($data as $elem) 
  {
      $result.='<tr>';
          $result.='<td><input type="checkbox"></td>';
          $result.='<td>'.$elem['username'].'</td>';
          $result.='<td>'.$elem['lastlogin'].'</td>';
          $result.='<td>'.$elem['Status'].'</td>';
      $result.='</tr>';
  }
  echo $result;
?>
    </table>
  </body>
</html>

Как сделать так, чтобы при нажатии на select all выделялись бы все чекбоксы. Вопрос еще в том. как чекбокс связать со строкой напротив?
Зараннее спасибо за помощь!
Сама таблица:
table.png
  • Вопрос задан
  • 1428 просмотров
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
Не понятно, что значит "связать со строкой" напротив. Я понимаю это, что чекбокс делает данную строку "выбранной", что ниже означает присвоение класса selected. Также можно клик по строке считать кликом по чекбоксу (это реализовано в третьей строке)

jQuery:

//  Действие при клике на общий чекбокс
$( 'input#checkall' ).on( 'change', function() {
  let val = $( this ).prop( 'checked' );  //  значение общего чекбокса
  $( this ).closest( 'table' ).find( 'input[type=checkbox]:not(#checkall)' ).prop( 'checked', val );  // всем остальным чекбоксам присваиваем то же значение
}

//  Действие при изменении чекбокса каждой строки (кроме строки заголовков)
$( 'input[type=checkbox]:not(#checkall)' ).on( 'change', function() {
  $( this ).closest( 'tr' ).toggleClass( 'selected' );  // включаем или выключаем класс selected у всей строки
}

//  Действие при клике по другим ячейкам строки = клику по чекбоксу (если это надо)
$( 'tr:gt(0) td:gt(0)' ).on( 'click', function() {
  let cb = $( this ).find( 'input' );   // чекбокс пригодится
  let newVal = !cb.prop( 'selected' );  // инвертированное значение чекбокса
  cb.prop( 'selected', val );  //  присваиваем инвертированное значение чекбоксу
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vanton
@vanton
Человек и пароход
У чекбокса генерируете уникальный id, строки в ячейках оборачивается в тег
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы