В основном у меня есть матричная таблица PHP, где пользователи представлены по осям X и Y.Цель состоит в том, чтобы пользователи могли добавлять комментарии друг к другу.Каждая ячейка td должна быть подключена к user_id, который спрашивает, и user_id, который спрашивается.Проблема в том, что когда таблица обновляется (пользователь удалил ИЛИ пользователь добавил), каждый тд получает новый идентификатор - и я больше не могу привязать комментарий к правой ячейке тд.
Когда пользователь нажимает тд - появляется модалс формой, где добавляется комментарий.Я использую JavaScript для передачи значений from_user_id и to_user_id в скрытые поля форм.Я также передаю идентификатор td, который хранится в базе данных - потому что мне нужно каким-то образом идентифицировать каждую ячейку td, в которую был добавлен комментарий, а затем распечатать, сколько комментариев в каждой ячейке.
В этом примере пользователь B добавляет комментарий к пользователю A. x = ячейка td, где мне нужно напечатать количество комментариев от этого конкретного отправителя (пользователь B) и получателя (пользователь A)
+-----+-------------+-------------+--------------+
| | A | B | C |
+-----+-------------+-------------+--------------+
| A | | | |
| | | | |
| B | x | | |
| | | | |
| C | | | |
+-----+-------------+-------------+--------------+
Вот как создается таблица:
<table id="tableID1" class="tableC display">
<thead>
<tr>
<th></th>
<?php
foreach ($users as $row) {
echo '<th id="'.$row->user_id.'">'.$row->username.'</th>';
}
?>
</tr>
</thead>
<?php
echo "<tbody>";
$startC = 0;
$countT = count($users);
$countComments = count($pageTableComments);
foreach( $users as $data ) {
echo '<tr>';
echo '<td id="'.$data->user_id.'">'.$data->username.'</td>';
for($i=0; $i < $countT; $i++) {
$startC++;
if ( $countComments > 0.5 && $pageTableComments_tbodyTD_idVAR == $startC) {
echo "<td id='$pageTableComments_tbodyTD_idVAR' class='selectable'> <a class='label countCommentsLabel'>$countComments</a></td>";
}
else {
echo "<td id='$startC' class='selectable'></td>";
}
}
}
echo '</tr>';
echo '</tbody>';
?>
JS:
var thead_ID = $.makeArray($('td.selectable[id]').map(function() {
return this.id;
}));
$('#tableID1').on('click', 'td', function(e) {
var to_id = e.delegateTarget.tHead.rows[0].cells[this.cellIndex];
var from_id = this.parentNode.cells[0];
var tbody_td_id = $(this).attr('id');
$('modal').modal('show');
$.ajax({
url: window.location.href,
type: "POST",
data: { to_id: $(to_id).text(), from_id:$(from_id).text(), tbodyTD_id:thead_ID },
success: function (data) {
$('.form_hidden_to_id').html( $(to_id).text() );
$('.form_hidden_from_id').html( $(from_id).text() );
document.getElementById('modelFormAddCommentFrom_ID').value = $(from_id).text();
document.getElementById('modelFormAddCommentTO_ID').value = $(to_id).text();
document.getElementById('modelFormAddComment_tbody_td_id').value = tbody_td_id;
},
})
});