AJAX JQuery 从 html 中删除但不从 mysql 数据库中删除

AJAX JQuery delete from html but not from mysql database

这里有什么问题?

我的PHP/HTML(唯一重要的部分):

if(isset($_POST['submit']))
{
    $date = date('Y-m-d', strtotime(str_replace("-","/",$_POST['dateOfEntry'])));
    $username = $_POST['user'];

    $query = 'SELECT `ID`, `Date`, `Description`, `TypeOfDowntime`, `Machine#` FROM `machineissuesreport` WHERE `Date`="'.$date.'" AND `UpdatedBy` = "'.$username.'" ORDER BY `ID` DESC';

    $conn = mysqli_query($connection, $query);

    while($row = mysqli_fetch_array($conn))
    {
        echo '<tr>';
        echo '<td style="text-align: center" width="5px"><input type="button" name="edit" value="Edit"></td>';
        echo '<td style="text-align: center" width="5px"><a href="#" id="'.$row['ID'].'" class="delete">Delete</a></td>';
        echo '<td style="display: none;"><input type="hidden" value='.$row['ID'].'></td>';
        echo '<td>'.$row['Date'].'</td>';
        echo '<td>'.$row['Description'].'</td>';
        echo '<td>'.$row['TypeOfDowntime'].'</td>';
        echo '<td>'.$row['Machine#'].'</td>';
        echo '</tr>';
    }

}
?>

我的Ajax/Javascript:

$(document).ready(function() 
{
    $('.delete').click(function()
    {
        if(confirm("Are you sure you want to delete this row?"))
        {
            var del_id = $(this).attr('id');
            var $ele = $(this).parent().parent();

            $.ajax({
                type: 'POST',
                url: 'machineEntryLogEdit.php',
                data: {'del_id':'del_id'},
                success: function(data)
                {
                    $ele.fadeOut().remove();            
                },
                error: function (xhr, status, error)
                {
                    alert(this);
                }
            });
        }
    });
});

我的PHP(在外部脚本上:machineEntryLogEdit.php):

include('connServer.php');

$deleteID = $_POST['del_id'];

$query = 'DELETE FROM `machineissuesreport` WHERE `ID` ="'.$deleteID.'"';

$result = mysqli_connect($connection, $query);

if(isset($result)) 
{
   echo "YES";
} 
else 
{
   echo "NO";
}

?>

我四处寻找解决方案,但无济于事。它所做的唯一事情是从 HTML table 中删除记录,而不是从数据库中删除记录,导致应该删除的行在刷新后重新出现。我对 AJAX 还是很陌生(事实上我今天才自己学会)并且仍在阅读文档和论坛。谢谢。

这应该是 data: {'del_id': del_id} 删除引号,使其作为一个变量,而不仅仅是一个字符串。还有一件事,你的删除查询没有执行 因为你正在使用 :

$result = mysqli_connect($connection, $query);

应该mysqli_query就像您在选择数据部分所做的那样:

$query = 'DELETE FROM `machineissuesreport` WHERE `ID` ="'.$deleteID.'"';
$result = mysqli_query($connection, $query);

在我看来,您似乎没有在数据中传递 submit 变量。如果你想包含一个你需要传递数据的表单,现在服务器只接收一个参数,del_id