通过 PHP 删除记录而不重新加载页面(使用 AJAX)

本德曼

我正在尝试通过 PHP 从数据库表中删除一些记录,而无需重新加载页面(使用 AJAX)。首先我打印表格中的所有信息,然后用户可以单击一个delete按钮,这将删除记录。但是,我在将记录传递id给 AJAX 方法时遇到了麻烦

ListProducts.php

create connection
...
$result = mysqli_query($conn, $sql);

echo "<table border = '1' style = 'border-collapse:collapse;'>";
echo "<tr><th>UserID</th><th>Username</th><th>Action</th></tr>";

if (mysqli_num_rows($result)>0){
    while ($row = mysqli_fetch_assoc($result)){
        echo "<tr><td>".$row['id']."</td><td>".$row['username']."</td><td><input type = 'submit' onclick = 'delete_record()' value = 'Delete' id = '".$row['id']."'></td></tr>";
    }
}

然后,在同一页面中,有 AJAX 功能。我已经为每个input字段提供了相应的 id,我正在尝试使用 jQuery 选择它

function delete_rekord(){
    var id = "Default";
    $(document).ready(function(){
        $("input").click(function(){
            id = $(this).attr('id');
        });
    });
    alert(id); //Test; will print DEFAULT
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function (){
        if (this.readyState == 4 && this.status == 200){
            alert("Deleted user with ID: " + this.responseText);
        }
    }
    xhttp.open("GET", "delete.php?id="+id, true);
    xhttp.send();
}

最后,delete.php我只是删除记录并打印我在此函数中收集的已删除记录的 id 作为 responseText 并打印出一条消息。我已经进行了测试alert(id),似乎 的值var id保持默认值,就像我初始化它一样。所以错误一定是我通过 jQuery 检索 id 的方式。任何想法如何解决这个问题?
谢谢

斯里

将 $row['id'] 传递到您的 javascript 函数中,如下所示。在您的 html 中更改代码如下

<input type = 'submit' onclick = 'delete_record(".$row['id'].")' value = 'Delete' id = '".$row['id']."'>

在您的 javascript 中,像这样更改函数

function delete_rekord(rowid){

   var id = rowid;

希望这对你有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章