我正在部署一个表,您可以在其中编辑列。为此,在每个单元格中都有一个<a>
,以显示一个模式来更改数据库中的que值并刷新页面。到目前为止,它很好地出现了模态,但是就目前而言,模态不知道单击了哪个链接。我需要知道它才能获得该行的id
。调用模式(“ Guardar”)的最后一个按钮的JQuery方法需要通过AJAX调用php脚本,并发送行的ID(以生成UPDATE语句)和列的新值。
我尝试使用JQuery中的方法closest()
和find()
,并在data-id属性中设置行的ID。
这是我通过PHP部署表的地方(代码简化为一列,以更好地阅读和理解它)
if($resHitos->num_rows>0){
while ($columna = mysqli_fetch_assoc($resHitos)) {
$id=$columna['id'];
echo "<tr data-id='$id'>";
echo "<td style='text-align:center'><p><a data-toggle='modal' data-target='#modalEditHito'>".$columna['descripcion']."</a></p></td>";
echo "</tr>";
}
}
这是模式
<div class="modal fade" id="modalEditarHito" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Editar objetivo</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="newObjetivo">Objetivo</label>
<textarea class="form-control" rows="5" id="editObjetivo"></textarea><br>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="editDescripcionHito()">Guardar</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
预期结果是看到在单击的确切行中输入的新值。
答案 0 :(得分:1)
您可以使用数据属性来唯一标识行。或者您可以像这样简单地添加id属性
echo '<tr data-id=".$columnna['id'].">';
您应该更改此行
echo "<td style='text-align:center'><p><a data-toggle='modal' data-target='#modalEditHito'>".$columna['descripcion']."</a></p></td>";
到
echo "<td style='text-align:center'><p><a data-toggle='modal' data-target='#modalEditHito".$columnna['id']."'>".$columna['descripcion']."</a></p></td>";
答案 1 :(得分:1)
在显示的模式上添加侦听器事件。
$(document).on('show.bs.modal','#modalEditHito', function (e) {
var $invoker = $(e.relatedTarget);
//this may help
//var tr = $invoker.closest('tr');
//var tr_id = tr.attr("data-id");
});