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

时间:2018-06-25 13:15:11

标签: php jquery mysql 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,该ID在此函数中作为responseText收集并打印出一条消息。我进行了一个测试alert(id),看来var id的值是 保持默认状态,就像我初始化它一样。所以错误一定是我通过jQuery检索id的方式。任何想法如何解决这个问题?
谢谢

3 个答案:

答案 0 :(得分:2)

您应该将<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 98"> <circle class='ui-icon__svg ui-icon__border' cx='50' cy='50' r='48' /> <path class='ui-icon__svg' d='M31.5 42.5V36l45-.1.1 22.6H70m0 6.7H25l-.1-22.7H70v22.7zM36 43.1l.1 22-.1-22zm22.9 0l.1 22-.1-22zm-16.3-6.6l.1 6.1-.1-6.1zm22.9 0l.1 6.1-.1-6.1z' /> </svg> 变量粘贴到删除功能中

id

在您的js中

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>";`

答案 1 :(得分:1)

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

希望这对您有帮助

答案 2 :(得分:1)

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

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

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