我以某种方式设法对一个工作系统进行编码,以从从数据库中检索的表中删除一行。
我的代码存在问题,我无法纠正
用于删除和向上滑动行的Jquery函数
<script type="text/javascript">
$('document').ready(function() {
$('a').click(function() {
if (confirm("Are you sure?")) {
var del_id = $(this).attr('id');
var parent = $(this).parent().parent();
$.post('delete.php', {id:del_id},function(data){
parent.slideUp('slow', function() {
$(this).remove();
});
});
}
return false;
});
});
</script>
以下是检索表的PHP代码
<?php
while(($row = mysqli_fetch_assoc($result))) {
echo "<tr>";
echo "
<td>
<span class='label label-red'>".$row['lid']."</span>
</td>
<td>
".$row['name']."
</td>
<td>
<a href='#'>".$row['email']."</a>
</td>
<td>
".$row['tel']."
</td>
<td>
Mental Stress Relief
</td>
<td>
<a href=\"javascript:return(0);\" id=".$row['lid'].">Delete</a>
</td>
";
}
?>
每一件事都很好。
但导航菜单使用相同的<a>
标签,因此当我点击此页面中的导航链接时......它会像表格一样向上滑动。我无法导航......我应该使用ID还是其他东西?
<ul class="navigation">
<li><a href="dashboard.php" class="blblue">Statistics</a></li>
<li><a href="leads.php" class="blyellow">Lead Detials</a></li>
<li><a href="includes/logout.php" class="blred">Logout</a></li>
</ul>
我很困惑。怎么办?
答案 0 :(得分:1)
使用类来标识各种类型的链接。例如class="delete"
并更改您的代码以定位:
$(function () {
$('a.delete').click(function () {
if (confirm("Are you sure?")) {
var del_id = $(this).attr('id');
var $tr = $(this).closest('tr');
$.post('delete.php', {
id: del_id
}, function (data) {
$tr.slideUp('slow', function () {
$(this).remove();
});
});
}
return false;
});
});
PHP改为:
<td>
<a href="#" class="delete" id=".$row['lid'].">Delete</a>
</td>
注意:
$(function(){...});
delete
课程添加到任何&#34;删除链接&#34; (显然不是任何其他链接)。类可以用来暗示元素上的特定行为(从jQuery的角度来看)。如果有多个元素,则应避免使用ID或部分ID选择器。parent().parent()
是&#34;脆弱的编码&#34;并且不处理HTML更改,因此请使用closest()
定位特定的祖先元素(例如closest("tr")
)parent
重命名为示例中更有意义的$tr
,因为我认为它是您删除的行。$
上限,以提高可读性。href=\"javascript:return(0);\"
。将其更改为简单的#
书签链接。答案 1 :(得分:1)
更改以下行格式:
$('a').click(function(){
到
$('td a').click(function(){