我试图通过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的方式。任何想法如何解决这个问题?
谢谢
答案 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);
}