Javascript 使用ajax和jQuery从数据库中删除条目

Javascript 使用ajax和jQuery从数据库中删除条目,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我制作这个应用程序是为了实践异步网站,它所做的只是使用jQuery和PHP以表格格式显示网站上数据库表的内容 一切都很完美,除了我想在每个上添加一个按钮,单击该按钮可以删除数据库中的相应条目,但是,我似乎无法完成。我已经看完了所有我用过的东西的文档,只是没有发现问题。这是我的密码: HTML: 正如我所说,对ajax来说有点陌生。如果我错了,请纠正我:这将调用deleteWaitlist.php并发布一个值为“$(this).attr('name')”的参数'id',它是数据库上的一个自动增量值

我制作这个应用程序是为了实践异步网站,它所做的只是使用jQuery和PHP以表格格式显示网站上数据库表的内容

一切都很完美,除了我想在每个上添加一个按钮,单击该按钮可以删除数据库中的相应条目,但是,我似乎无法完成。我已经看完了所有我用过的东西的文档,只是没有发现问题。这是我的密码:

HTML:

正如我所说,对ajax来说有点陌生。如果我错了,请纠正我:这将调用deleteWaitlist.php并发布一个值为“$(this).attr('name')”的参数'id',它是数据库上的一个自动增量值,对于每个条目都应该是不同的

deleteWaitlist.php

$sql = "DELETE FROM waitlist WHERE id=" . $_POST[id] . "";
mysqli_query($c,$sql);
这很简单,不是吗?你能帮我找出错误吗?可能是(int)$\u POST[id]之类的东西?我发誓我到处都试过


编辑:奇怪的是,当我点击按钮时,我甚至没有得到控制台日志“click on.deleteWaitlist”,就好像我根本没有点击它一样。会发生什么?我还更改了类的id“deleteWaitlist”,因为这似乎是最佳做法。

在输出html中似乎有多个delete按钮,而jQuery在查询id时正好匹配一个元素

尝试在“删除”按钮上使用类而不是ID

while ($places = mysqli_fetch_array($result)) {
  echo "<tr>";
    echo "<td>". $places ['ID']."</td>";
    echo "<td>". $places ['NAME']."</td>";
    echo "<td>". $places ['CHAIRS']."</td>";
    echo "<td>". $places ['CREATED']."</td>";
    echo '<td>
      <button class="btn btn-default deleteWaitlist" type="submit" name="' . $places['ID'] . '">X</button>
    </td>';
  echo "</tr>";
}

在输出html中似乎有多个delete按钮,而jQuery在查询ID时正好匹配一个元素

尝试在“删除”按钮上使用类而不是ID

while ($places = mysqli_fetch_array($result)) {
  echo "<tr>";
    echo "<td>". $places ['ID']."</td>";
    echo "<td>". $places ['NAME']."</td>";
    echo "<td>". $places ['CHAIRS']."</td>";
    echo "<td>". $places ['CREATED']."</td>";
    echo '<td>
      <button class="btn btn-default deleteWaitlist" type="submit" name="' . $places['ID'] . '">X</button>
    </td>';
  echo "</tr>";
}

你得到了什么结果?您在控制台中得到了什么?在调用sql查询之前,您是否尝试在deleteWaitlist.php中回显$_POST['id']呢?在这里不应该相关,但千万不要给两个元素相同的id。如果您想将几个元素标识为属于您想要共同操作的类,那么它应该是-一个类
class=“deleteWaitlist”
$('.deleteWaitlist')
@Amadan。这在这里是相关的!因为这就是赫兹要做到的!!这应该是第一步@古鲁帕萨德罗:这确实是相关的,抱歉。你得到了什么结果?您在控制台中得到了什么?在调用sql查询之前,您是否尝试在deleteWaitlist.php中回显$_POST['id']呢?在这里不应该相关,但千万不要给两个元素相同的id。如果您想将几个元素标识为属于您想要共同操作的类,那么它应该是-一个类
class=“deleteWaitlist”
$('.deleteWaitlist')
@Amadan。这在这里是相关的!因为这就是赫兹要做到的!!这应该是第一步@古鲁帕萨德罗:这确实是相关的,抱歉。您好@wkyip,谢谢您的回答!我不认为这会导致问题,使用类或id对jQuery不应该是一样的吗?我尝试了您提供的代码,但没有成功。您好@wkyip,谢谢您的回答!我不认为这会导致问题,使用类或id对jQuery不应该是一样的吗?我尝试了你善意提供的代码,但没有成功。
$sql = "DELETE FROM waitlist WHERE id=" . $_POST[id] . "";
mysqli_query($c,$sql);
while ($places = mysqli_fetch_array($result)) {
  echo "<tr>";
    echo "<td>". $places ['ID']."</td>";
    echo "<td>". $places ['NAME']."</td>";
    echo "<td>". $places ['CHAIRS']."</td>";
    echo "<td>". $places ['CREATED']."</td>";
    echo '<td>
      <button class="btn btn-default deleteWaitlist" type="submit" name="' . $places['ID'] . '">X</button>
    </td>';
  echo "</tr>";
}
$(".deleteWaitlist").click(function(){
    console.log("click on .deleteWaitlist");
    // Get the varible name, to send to your php
     var i = $(this).attr('name');
        $.post({
            url: 'deleteWaitlist.php', 
            data: { id : i}, 
            success: function(result){
                console.log("success" + result);
            }
        });
});