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

hjzp0vay  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(357)

我正在尝试通过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作为响应文本并打印出一条消息。我做了个测试 alert(id) 看来 var id 保持默认值,就像我初始化它一样。所以错误一定是我通过jquery检索id的方式。有什么办法解决这个问题吗?
谢谢

eh57zj3b

eh57zj3b1#

将id的值作为函数参数传递

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

function delete_record(id){
    alert(id);
}
iq3niunx

iq3niunx2#

将$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;

希望这对你有帮助

tcbh2hod

tcbh2hod3#

你应该检查一下 id 将变量放入delete函数中

echo "<tr><td>".$row['id']."</td><td>".$row['username']."</td><td><input type='submit' onclick='delete_record(".$row['id']."); return false;' value = 'Delete' id = '".$row['id']."'></td></tr>";`

在你的js里

function delete_record(id){ // also rename it to delete_record your fn name was delete_rekord
  alert(id); //Test; will print the correct ID
  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();
}

相关问题