我有一个通过PHP循环构建的数据库中的记录列表。 问题是,我需要一种删除记录的方法(不刷新页面会是最好的)但是我很难搞清楚如何做到这一点。
到目前为止,我已经有了一个跨度(使用bootstrap,所以它是一个glyphicon图标(一个X)) - 用户应该单击此按钮删除特定记录。问题是当单击此按钮时,它会将当前表的所有唯一ID发送到ajax脚本,这显然不是很好。
以下是我所拥有的: 生成的记录:
while($row = $ret2->fetchArray(SQLITE3_ASSOC) ){
echo '<tr>';
echo '<th>#</th>';
echo '<th>'.$row['type'].'</th>';
echo '<th>'.$row['func'].'</th>';
echo '<th>'.$row['trg'].'</th>';
echo '<th>
<span id="deleteRecordSpan" style="cursor:pointer" class="remove glyphicon glyphicon-remove">'.$row['uniqueID'].'</span>
</th>';
echo '</tr>';
$loop++;
}
到ajax脚本:
<script>
$(document).ready(function() {
$('.remove').click(function() {
var input = $('.remove').text();
$.ajax({ // create an AJAX call...
data: {
uniqueid: input,
},
type: 'POST', // GET or POST from the form
url: './ajax/deleteRecord.php', // the file to call from the form
success: function(response) { // on success..
show10();
allToday();
}
});
});
});
</script>
span的内容只包含与其内部关联的UniqueID。
我正在努力寻找一种方法来仅发送被点击到ajax脚本中删除的特定UniqueID。
以下是发生的事情:
UniqueID | Type | Func | otherID |
500 | Computer | Full | 123 | X
557 | Computer | Full | 125 | X
654 | Computer | Full | 12564 | X
如果点击上表中的任何一个X,它会将500557654
发送到ajax脚本,当我需要它时只发送与X相关联的ID。
答案 0 :(得分:1)
当您使用选择器$('.remove')
时,jQuery将选择包含类remove
的每个元素,在您的情况下选择所有remove
跨度。
将input = $('.remove').text()
更改为input = $(this).text()
。
此外,您可以将属性分配给span
并从中获取ID:
在你的PHP中:
<span id="deleteRecordSpan" data-uid="'.$row['uniqueID'].'" style="cursor:pointer" class="remove glyphicon glyphicon-remove">'.$row['uniqueID'].'</span>
然后在你的javascript中:
var input = $(this).data('uid');
所以你不需要使用纯文本。