У меня есть две таблицы, обе имеют одинаковое количество записей и одинаковые значения, однако значения встречаются в разных точках. Примером может быть
Таблица 1
- Джон
- Сара
- Крис
Таблица2
- Крис
- Сара
- Джон
Я хотел бы, чтобы пользователи нажимали на Джона на столе один, его позиция выделялась в таблице один, а также таблица 2
.
Я уже реализовал функцию подсветки для работы с таблицей один, мне просто нужен способ прочитать значение ячейки, а затем искать ее идентификатор строки в таблице 2, чтобы выделить это.
Ниже я покажу код своей таблицы, а также функцию выделения.
(я понимаю, что я могу выводить таблицы не так оптимально, как следовало бы, Я хотел бы помочь с этим, но его старый код, который я еще не оптимизировал)
Таблица 1
<div class='column'>
<h3>".$_SESSION['username']."</h3>
<h5>Total Score: ".$data1['laligascore']."</h5>
<table id='laliga' class='table table-bordered'>
<tr>
<th>#</th>
<th>Name</th>
</tr>
<tbody class='row_position'>"?>
<?php
require('config.php');
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE2);
$tablename = $_SESSION['username'] . "_laliga";
$sql = "SELECT * FROM $tablename ORDER BY position_order";
$users = $mysqli->query($sql);
while($user = $users->fetch_assoc()){
?>
<tr id="<?php echo $user['id'] ?>">
<td><?php echo $user['position_order'] ?></td>
<td><?php echo $user['title'] ?></td>
</tr>
<?php }?>
</tbody>
</table>
</div>
Таблица 2 такая же, но id = laliga2
Код для выделения (обратите внимание, y - это идентификатор таблицы и передается через другую функцию, которая должна быть вызвана для создания двух таблиц появляются
function highlight_row(y) {
var table = document.getElementById(y);
var table2 = document.getElementById(y.concat("2"));
var cells = table.getElementsByTagName('td');
var cells2 = table2.getElementsByTagName('td');
for (var i = 0; i < cells.length; i++) {
var cell = cells[i];
cell.onclick = function () {
var rowId = this.parentNode.rowIndex;
var rowsNotSelected = table.getElementsByTagName('tr');
for (var row = 0; row < rowsNotSelected.length; row++) {
rowsNotSelected[row].style.backgroundColor = "";
}
var rowSelected = table.getElementsByTagName('tr')[rowId];
rowSelected.style.backgroundColor = "yellow";
msg = this.innerHTML;
/*var tableRow = $("td").filter(function() {
return $(this).text() == msg;
}).closest("tr"); */
}
}