У меня есть страница, на которой я создаю таблицу из php, которая развертывает результат предыдущего запроса. Показывает идентификатор в первом столбце. Я хочу, чтобы некоторые столбцы можно было нажимать, чтобы изменить значение, изменить его в базе данных и обновить страницу. Для этого появляется модальный Bootstrap, когда вы щелкаете по столбцам ссылок (те, у которых есть). Когда вы заполняете модальный режим, он отправляет информацию в скрипт JQuery, который вызывает страницу php через AJAX. Эта страница php может быть вызвана асинхронно для редактирования значения в базе данных, и для выполнения инструкции UPDATE SQL требуется новое значение и идентификатор строки.
Мне нужно отправить идентификатор строки, которую вы щелкнули, методу JQuery, который использует AJAX. Но в тот момент, когда я вызываю функцию, я не знаю, как отправить идентификатор в качестве параметра.
Я пытался найти идентификатор строки, по которой вы щелкаете, касаясь DOM через JQuery, добавляя идентификаторы в строки, но это слишком сложно для моего уровня.
Здесь php развертывает таблицу с информацией.
$resISDEFE = mysqli_query($conexion,"SELECT * FROM personal_isdefe WHERE proyecto=".$idProyecto);
if($resISDEFE->num_rows>0){
$index=0;
while($isdefe = mysqli_fetch_assoc($resISDEFE)){
$resCategoria = mysqli_query($conexion,"SELECT * FROM categoria_isdefe WHERE id=".$isdefe['categoria']);
$categoria = $resCategoria->fetch_row();
$idISDEFE = $isdefe['id']; <-- I save the row's ID here -->
echo "<tr id='isdefe'>";
echo "<td><p>".$idISDEFE."</p></td>";
echo "<td><p>".$categoria[1]."</p></td>";
echo "<td><p>".$isdefe['edg']."</p></td>";
echo "<td><p><a data-toggle='modal' data-target='#modalConcepto'>".$isdefe['porcentaje']."%</a></p></td>";
echo "<td><p>".$isdefe['horas_contratadas']."</p></td>";
$importe_prestacion = $isdefe['horas_contratadas'] * $categoria[2];
echo "<td><p>".number_format($importe_prestacion,2,",",".")." €</p></td>";
echo "<td><p>".number_format(($isdefe['importe_variable']+$importe_prestacion),2,",",".")." €</p></td>";
echo "</tr>";
}
Это модальный вид.
<div class="modal fade" id="modalConcepto" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Editar concepto</h4>
</div>
<div class="modal-body">
<div class="form-group">
<textarea class="form-control" rows="10" id="newConcepto"></textarea><br>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" onclick='editConcepto(<?php $idISDEFE ?>)'>Guardar</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
И это метод JQuery, который вызывается при нажатии «Guardar».
function newConcepto(id, newConcepto){
if(newConcepto!=""){
$.get("ajax/editarConceptoISDEFE.php?id="+id+"&con="+newConcepto, function(data){
if(data=="1"){
var time = setTimeout(function(){
location.reload();
},500);
}
else alert("Error al actualizar el concepto");
});
}
}
function editConcepto(id){
var newConcepto = $('#newConcepto').val();
newConcepto(id,newConcepto);
}
}
Ожидаемый результат заключается в том, что при перезагрузке страницы вы можете увидеть измененное значение именно в той строке, по которой щелкнули ранее.