Deleting mySQL Table Row with jQuery Ajax

10,394

the reason your row is still there because AJAX call does not refresh the page. If you want your row to be removed you gotta do something like:

ASSUMING that your span click event is inside the row

 $(".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 {

                }   
            }
    });

Replace:

            data: 'delete_id='+del_id,

with:

            data: delete_id : del_id,
Share:
10,394
user2201765
Author by

user2201765

Updated on June 14, 2022

Comments

  • user2201765
    user2201765 almost 2 years

    I'm trying to make it so when I click a span icon it will send the article_id to my php sql page which deletes my article, I'm using jQuery Ajax to send the id, the id sends alright on the jQuery side but after the http post request is done my table row is still there, can anyone see if somethings wrong with my code, thanks in advance!

        <?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";
    }
    
    
    ?>
    
  • user2201765
    user2201765 about 11 years
    @GGio thank, but my Problem is in deleting it from the actual database, as I sending the data that I need(jQuery Ajax) correctly and I'm I receiving it correctly in my sql page? because it doesn't remove it from the database.
  • user2201765
    user2201765 about 11 years
    Thank you very much that's the part I was confused with thanks a lot for you time! very much appreciated!