我有一个html表,在每一行上,我想添加一个删除按钮。 当用户点击它时,我想做两件事:
1)从表中删除行。 2)从已删除的行中提取数据 - 特定单元格,然后使用此值对要从数据库中删除记录的函数进行ajax调用。该函数返回一个新的项目列表,然后我将用它来重新显示同一个表格。
我在stackoverflow上找到了其他人发来的帖子: How to remove current row from table in jQuery?
所以我猜这个地址排在第一位。但是我不知道如何修改帖子的选定答案中的代码以允许抓取行中的id值,然后进行ajax调用。
<table class="table table-bordered table-striped" id="databaserecords">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Status</th>
<th>Voice</th>
<th>Jumbo</th>
<th>Mode</th>
<th> </th>
</tr>
</thead>
<tbody>
<?php foreach ($dblist as $record): ?>
<tr>
<td class ='recordId'><?php echo $record['Id'] ?></td>
<td class ='recordName'><?php echo $record['Name'] ?></td>
<td><?php echo $record['Status'] ?></td>
<td><?php echo $record['Voice'] ?></td>
<td><?php echo $record['Jumbo'] ?></td>
<td class='recordmode'><?php echo $record['Mode'] ?></td>
<td><button id="deleteRecord">Delete Record</button></td>
</tr>
<?php endforeach ?>
<script>
$('#deleteRecord').live('click', function() {
//get a count of all records. only allowed to delete if you have more than one record.
var recCount = $('#databaserecords tbody tr').length;
if (recCount > 1)
{
$thevalueIwanttoSave = $(this).closest('recordId').val();
alert($thevalueIwanttoSave);
}
});
</script>
现在,警报总是说我的变量未定义。 你能为我指出正确的方向吗?我知道如何编写一个ajax调用...我想我只需要帮助从表中获取值。
感谢。
答案 0 :(得分:2)
您的选择器不正确。
$thevalueIwanttoSave = $(this).parent().siblings('.recordId').text();
closest
选择元素中最接近的父元素( recordId 不是父元素/祖父母元素或按钮元素的..),您也错过了.
类选择。 val
用于获取/设置表单元素的值,对于td元素,您应该使用text
或html
方法。另请注意, ID必须是唯一的(您可以使用类)而不推荐使用live
方法,您可以使用on
方法。
$('#databaserecords').on('click', '.deleteRecord', function() {
var recCount = $('#databaserecords tbody tr').length;
if (recCount > 1) {
var text = $(this).parent().siblings('.recordId').text();
alert(text);
// $(this).closest('tr').remove()
}
});
答案 1 :(得分:0)
$thevalueIwanttoSave = $(this).parent('tr').find('.recordId').text();
答案 2 :(得分:-1)
在删除按钮的属性中添加ID,您可以通过jQuery获取它。
在你的php循环中:
<button class="deleteRecord" recordID="<?php echo $record['Id'] ?>">Delete Record</button>
在JQuery上
$(".deleteRecord").click(function() { var id = $(this).attr("recordID"); ... });
答案 3 :(得分:-1)
应该是.recordId
,而不是recordId
$thevalueIwanttoSave = $(this).closest('.recordId').val();
alert($thevalueIwanttoSave);
答案 4 :(得分:-1)
您需要使用.
来选择类recordId的元素。还可以使用text()来获取值:
$thevalueIwanttoSave = $(this).siblings('.recordId').text();
alert($thevalueIwanttoSave);