jquery - AJAX 调用可以正常运行 MySQL 删除查询,但不会隐藏从页面中删除的表行

标签 jquery mysql ajax fadeout

我有一个脚本,它运行 AJAX 调用以从数据表中删除指定行。查询运行良好,记录已从数据库中删除,但当用户单击删除按钮隐藏时,我无法获取用户正在浏览的表中的行。我想我记得 jQuerytd/tr 的问题,这也许就是这样,但即使在尝试将每个表行放入其自己的 div 中以引用我之后还是没有运气。

ajax请求:

$(document).ready(function() {
    //##### Send delete Ajax request to response.php #########
    //$("body").on("click", "#responds .del_button", function(e) {
        $("body").on("click", ".del_button", function(e) {
         e.returnValue = false;
         var clickedID = this.id.split('-'); //Split string (Split works as PHP explode)
         var DbNumberID = clickedID[1]; //and get number from array
         var myData = 'recordToDelete='+ DbNumberID; //build a post data structure

            jQuery.ajax({
            type: "POST", // HTTP method POST or GET
            url: "ajax/education_response.php", //Where to make Ajax calls
            dataType:"text", // Data type, HTML, json etc.
            data:myData, //Form variables
            success:function(response){
                //on success, hide  element user wants to delete.
                $('#item_'+DbNumberID).fadeOut("slow");
            },
            error:function (xhr, ajaxOptions, thrownError){
                //On error, we alert user
                alert(thrownError);
            }
            });
    });
    $('html, body').stop();

});

以及我正在使用的用于填充表格的结构(我知道每行的 div 都很困惑,但正如我所说,我确信我记得 jQuery 不喜欢 tr/td。我在其他页面上使用了这个 ajax 调用,并且 fadeout() 在所有其他情况下都能正常工作,所以确保它必须是因为我试图从前端表中删除个别行。

<?php
while ($row = mysqli_fetch_assoc($result)) {
    $catid = $row['id'];
    $catsector = $row['job_sector'];
    $cattype = $row['job_type'];
    $catname = $row['job_name'];
    echo "<div id=item_".$catid.">";
    echo "<tr class=''>";
    echo "<td>$catsector</td>";
    echo "<td>$cattype</td>";
    echo "<td>$catname</td>";
    echo "<td><a href='#' class='del_button' id='del-". $catid ."'>Delete CV</a></td>";
    echo "</tr>";           
    echo "</div>";
}
?>

最佳答案

删除

echo "<div id=item_".$catid.">";

echo "</div>";

并改变

echo "<tr class=''>";

对于

echo "<tr class='' id=item_".$catid.">";

关于jquery - AJAX 调用可以正常运行 MySQL 删除查询,但不会隐藏从页面中删除的表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17329584/

相关文章:

php - Mysql 比较表中的值

mysql - 非聚合分组列是否需要 HAVING?

jquery - 使用 jQuery、SEO 将远程内容加载到 div 元素中

c# - 如何使用 Web API 2 表示成功?

jquery - JQplot : blank chart when print IE

javascript - 根据 div 的值隐藏表单域

javascript - 在 jQuery.each 外部声明的变量在 jQuery.each 主体中变为未定义

mysql - SQL 服务器 : how to avoid duplicate data?

javascript - .js 未应用于 ng-view

javascript - 使用 ajax 外部 API 调用控制网页上链接的启用/禁用状态