我正在尝试创建一个按钮来删除使用PHP和AJAX从MySQL中选择的一行数据。

我正在尝试创建一个按钮来删除使用PHP和AJAX从MySQL中选择的一行数据。,php,ajaxform,Php,Ajaxform,正如标题所示,我创建了按钮,并将其作为表中的最后一列进行定位。该表从MySQL中提取,并正确显示所有值。还有另一个新条目的表单,它很好用 我已经在线通过适当的验证器工具运行了我的代码,它们通过时没有错误。所以,我想知道我的问题是它没有传递要删除的行的值。或者说,总体上什么是不正确的,或者是否有更好的编码方法。我对PHP,尤其是AJAX相当陌生,所以我想知道我在这里哪里出错了?提前谢谢,如果需要更多信息,我很乐意接受 以下是HTML和PHP的代码: <?php @$db = new my

正如标题所示,我创建了按钮,并将其作为表中的最后一列进行定位。该表从MySQL中提取,并正确显示所有值。还有另一个新条目的表单,它很好用

我已经在线通过适当的验证器工具运行了我的代码,它们通过时没有错误。所以,我想知道我的问题是它没有传递要删除的行的值。或者说,总体上什么是不正确的,或者是否有更好的编码方法。我对PHP,尤其是AJAX相当陌生,所以我想知道我在这里哪里出错了?提前谢谢,如果需要更多信息,我很乐意接受

以下是HTML和PHP的代码:

<?php 

@$db = new mysqli('localhost', 'root', 'pwdpwd', 'pet_shop');
if (mysqli_connect_errno())
    {
        echo 'Cannot connect to database: ' . mysqli_connect_error();
    }
else 
{
    $groomings = 'SELECT * from grooming';
    $result = $db->query($groomings);
}
?>
        <table align="center" border="1">
            <tr>
                <th>ID</th>
                <th>First Name</th>
                <th>Last Name</th>
                <th>Address</th>
                <th>City</th>
                <th>State</th>
                <th>Zip</th>
                <th>Phone</th>
                <th>Email</th>
                <th>Pet Type</th>
                <th>Breed</th>
                <th>Pet Name</th>
                <th>Neutered/Spayed</th>
                <th>Pet Age</th>
                <th>Edit/Delete</th>
            </tr>

<?php
    while ($row = $result->fetch_assoc())

    {
        echo '<tr>';
        echo '<td>' . $row['GroomingID'] . '</td>';
        echo '<td>' . $row['FirstName'] . '</td>';
        echo '<td>' . $row['LastName'] . '</td>';
        echo '<td>' . $row['Address'] . '</td>';
        echo '<td>' . $row['City'] . '</td>';
        echo '<td>' . $row['State'] . '</td>';
        echo '<td>' . $row['Zip'] . '</td>';
        echo '<td>' . $row['PhoneNumber'] . '</td>';
        echo '<td>' . $row['Email'] . '</td>';
        echo '<td>' . $row['PetType'] . '</td>';
        echo '<td>' . $row['Breed'] . '</td>';
        echo '<td>' . $row['PetName'] . '</td>';
        echo '<td>' . $row['NeuteredOrSpayed'] . '</td>';
        echo '<td>' . $row['PetAge'] . '</td>';
        echo '<td>' . '<button action="delete.php" class="del_btn" rel="'.$row["GroomingID"].'">' . 'Delete' . '</button>' . '</td>';
        echo '</tr>';
    }
?>

身份证件
名字
姓
地址
城市
陈述
拉链
电话
电子邮件
宠物型
繁殖
昵称
绝育/绝育
宠物年龄
编辑/删除
以及Jquery/Ajax:

<script>
  $(document).ready(function(){
    $('.del_btn').click(function(){
       var del_id = $(this).attr('rel');
       $.post('delete.php', {delete_id:del_id}, function(data) {
          if(data == 'true') {
            $('#'+del_id).remove();
          } else {
            alert('Could not delete!');
          }
       });
    });
  });
</script>

        </table>
<?php
    $result->free();
    $db->close();
?>

$(文档).ready(函数(){
$('.del_btn')。单击(函数(){
var del_id=$(this.attr('rel');
$.post('delete.php',{delete\u id:del\u id},函数(数据){
如果(数据=='true'){
$('#'+del_id).remove();
}否则{
警报('无法删除!');
}
});
});
});
下面是运行查询的delete.php文件:

<?php
function dbString($string)
{
    $string=trim($string);
    if (get_magic_quotes_gpc())
    {
        return $string;
    }
    else
    {
        return addslashes($string);
    }
}


@$db = new mysqli('localhost', 'root', 'pwdpwd', 'pet_shop');
if (mysqli_connect_errno())
    {
        echo 'Cannot connect to database: ' . mysqli_connect_error();
    }

if(isset($_POST['delete_id']) && !empty($_POST['delete_id'])) 
{
    $delete_id = mysql_real_escape_string($_POST['delete_id']);
    $result = mysql_query("DELETE FROM grooming WHERE GroomingID=".$delete_id);
}
?>

<!DOCTYPE HTML>
<html>
<head>
</head>
<body
onload="document.createElement('form').submit.call(document.getElementById('newEntry'))">
    <form action="admin.php" id="newEntry">
    <input type="submit" value="confirm">
    </form>
</body>

在实际代码中,您试图删除一个不存在的HTML元素

$('#'+del_id).remove();
我在您的代码中没有看到具有此类ID的元素。请尝试执行以下操作:

<?php
    while ($row = $result->fetch_assoc())

    {
        echo '<tr id="'.$row['GroomingID'].'">'; // <-- HERE
        echo '<td>' . $row['GroomingID'] . '</td>';

您可以删除
dbString()
function-magic quotes是一项非常传统的功能,不再推荐使用。我建议删除
@
错误抑制操作符。我已将id添加到行中,并在JQuery中更改为$('delete_id')。remove();并删除了dbstring函数和@。但是,它仍然不会传递变量。