javascript - 如何在成功函数上删除ajax中的一条记录后重新加载表内容

标签 javascript php jquery mysql ajax

我有以下代码: 我的代码工作正常,但我的 ajax 成功功能不工作 我想在删除行后显示更新的记录,而不刷新页面。 我已经在 StackOverflow 上检查了我的答案,但我的问题没有解决,请帮忙。

<html>
<body>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>

</head>
<table border="1">
    <?php
    mysql_connect('localhost','root','');
mysql_select_db('test');

$sql ="SELECT * FROM test";
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_object($result)){

    echo '<tr><td>'.$row->fname.'</td><td>'.$row->lname.'</td>'.'

    <a href="#" id="'.$row->id.'" class="trash" >
   de
    </a>

    '.'</td></tr>';
    }

?>
  </table>

</body>
 <script type="text/javascript"> $(function(){
    $(document).on('click','.trash',function(){
        var del_id= $(this).attr('id');
        var $ele = $(this).parent().parent();
        $.ajax({
            type:'POST',
            url:'del.php',
            data:{'del_id':del_id},
            success: function(data){
                 if(data=="YES"){
                    $ele.fadeOut().remove();
                 }else{
                        alert("can't delete the row")
                 }
                 }
             }

            });
        });
});</script>
</html>

del.php文件是:

<?php
mysql_connect('localhost','root','');
mysql_select_db('test');
$music_number = $_POST['del_id'];
//echo $music_number;
$qry = "DELETE FROM test WHERE id ='$music_number'";
$result=mysql_query($qry);
if(isset($result)) {
   echo "YES";
} else {
   echo "NO";
}
?>

最佳答案

试试这个:

<script type="text/javascript">
$( document ).ready(function() {
    $('.trash').click(function(){
        var tr = $(this).closest('tr');  // **add this
        var del_id = $(this).attr('id');
        $.ajax({
                type: 'POST',
                url: 'del.php',
                data: {
                    'del_id': del_id
                },
                success: function(data) {
                    if (data == "YES") {
                        tr.fadeOut(1000, function(){ // **add this
                            $(this).remove();
                        });
                    } else {
                        alert("can't delete the row")
                    }
                }
            }

        });
    });
});
</script>

closest 方法返回所选元素的第一个祖先。 https://api.jquery.com/closest/

关于javascript - 如何在成功函数上删除ajax中的一条记录后重新加载表内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45903701/

相关文章:

javascript - 通过查找关键字将 Javascript 字符串拆分为字符串数组

javascript - 使用 multer 将音频文件上传到 express js 服务器

javascript - jquery 和 html5 文本框从本地存储保存/加载

php - MYSQL:INSERT INTO 同时也在同一查询中进行 INNER JOIN

php - 如何找到此 sql 查询的行数?

jquery - HTML/CSS/Jquery 内容侧滚动条

jquery - 使用 jQuery 隐藏表格列

javascript - 作为常量存储的模板字符串

php - 如何在不知道其字段名称的情况下加载整个数据库?

jquery - ASP.NET MVC3 : ValidationType ModelClientValidationRule