У меня есть таблица, которая включает в себя как кнопку «Редактировать/Сохранить», так и «Удалить». Всякий раз, когда я нажимаю кнопку «Изменить», он делает строки редактируемыми и меняет кнопку «Сохранить», поэтому я могу сохранить изменения. Однако, когда я это делаю, он делает каждую ячейку редактируемой, и только первая строка работает с кнопкой редактирования. Это не работает для второго ряда, третий ряд и т.д.Button и ContentEditable Функции
Моего вопрос два партера ...
Как я могу сделать определенные ячейки в строке не редактируются и другие редактируемыми? Я специально хочу, чтобы первая ячейка «MR_ID» не редактировалась.
Как я могу заставить функцию редактирования работать для нескольких строк, а не только для первой строки?
Соответствующий HTML/PHP код:
<?php
foreach ($dbh->query($sql) as $rows){
?>
<tr>
<td id="mr_id" contenteditable="false"><?php echo intval ($rows['MR_ID'])?></td>
<td id="mr_name" contenteditable="false"><?php echo $rows['MR_Name']?></td>
<td id="buyer_id" contenteditable="false"><?php echo $rows['Buyer_ID']?></td>
<td id="poc_n" contenteditable="false"><?php echo $rows['MR_POC_N']?></td>
<td id="poc_e" contenteditable="false"><?php echo $rows['MR_POC_E']?></td>
<td id="poc_p" contenteditable="false"><?php echo $rows['MR_POC_P']?></td>
<td><button id="edit" name="edit">Edit</button>
<button id="delRow" name="delete" onclick="deleteRow(this)">Delete</button></td>
</tr>
Соответствующий Javascript код:
$(document).ready(function() {
$('#edit').click(function() {
var $this = $(this);
var tds = $this.closest('tr').find('td').filter(function() {
return $(this).find('#edit').length === 0;
});
if ($this.html() === 'Edit') {
$this.html('Save');
tds.prop('contenteditable', true);
} else {
$this.html('Edit');
tds.prop('contenteditable', false);
}
});
});
Вы сделали deleteRow (это), по какой-либо причине вы не сделали editRow (это)? – Keith