繁体   English   中英

使用jQuery Ajax删除mySQL表行

[英]Deleting mySQL Table Row with jQuery Ajax

我试图这样做,当我点击一个跨度图标时,它会将article_id发送到我的php sql页面,删除我的文章,我使用jQuery Ajax发送id,id在jQuery端发送正常但是之后http post请求完成后我的表行仍然存在,任何人都可以看到我的代码是否有问题,提前谢谢!

    <?php
        $sql_categories = "SELECT art_id, art_title, art_company, art_cat_id, art_sta_id, art_date, art_rating, art_price, cat_id, cat_name, sta_id, sta_name
                FROM app_articles LEFT JOIN app_categories
                ON app_articles.art_cat_id = app_categories.cat_id
                LEFT JOIN app_status
                ON app_articles.art_sta_id = app_status.sta_id
                ORDER BY art_order ASC"; 

            if($result = query($sql_categories)){
                $list = array();

                while($data = mysqli_fetch_assoc($result)){
                    array_push($list, $data);
                }

                foreach($list as $i => $row){ 
                ?>
                    <div class="row" id="page_<?php echo $row['art_id']; ?>">
                        <div class="column one">
                            <span class="icon-small move"></span>
                            <a href="edit-article.php?art_id=<?php echo $row['art_id']; ?>"><span class="icon-small edit"></span></a>
                            <span id="<?php echo $row['art_id']; ?>" class="icon-small trash"></span>
                        </div>
                        <div class="column two"><p><?php echo $row['art_title']; ?></p></div>
                        <div class="column two"><p><?php echo $row['art_company']; ?></p></div>
                        <div class="column two"><p><?php echo $row['cat_name']; ?></p></div>
                        <div class="column one"><p><?php echo $row['art_date']; ?></p></div>
                        <div class="column one"><p><?php echo $row['art_rating']; ?></p></div>
                        <div class="column one"><p><?php echo $row['art_price']; ?></p></div>
                        <div class="column one"><p><?php echo $row['sta_name']; ?></p></div>
                        <div class="column one"><a href=""><span class="icon-small star"></span></a></div>
                    </div>
                <?php
                }
            }
            else {
                echo "FAIL";
            }
        ?>


jQuery

        $(document).ready(function(){

                $(".trash").click(function(){

            var del_id = $(this).attr('id');

            $.ajax({
                type:'POST',
                url:'ajax-delete.php',
                data: 'delete_id='+del_id,
                success:function(data) {
                    if(data) {

                    } 
                    else {

                    }   
                }

            }); 
        });

    });


PHP mySQL Statement

    if(isset($_POST['delete_id'])) {

        $sql_articles = "DELETE FROM app_articles WHERE art_id = ".$_POST['delete_id'];

        if(query($sql_articles)) {
            echo "YES";
        }
        else {
            echo "NO";
        }
    }
else {
    echo "FAIL";
}


?>

您的行仍然存在的原因,因为AJAX调用不会刷新页面。 如果你想删除你的行,你必须做类似的事情:

假设您的跨度点击事件在行内

 $(".trash").click(function(){
   var del_id = $(this).attr('id');
   var rowElement = $(this).parent().parent(); //grab the row

   $.ajax({
            type:'POST',
            url:'ajax-delete.php',
            data: {delete_id : del_id},
            success:function(data) {
                if(data == "YES") {
                   rowElement.fadeOut(500).remove();
                } 
                else {

                }   
            }
    });

更换:

            data: 'delete_id='+del_id,

有:

            data: delete_id : del_id,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM