我正在使这个应用程序练习异步网站,它所做的只是使用jQuery和PHP以表格格式显示网站上数据库表的内容。
一切都很完美,除了我想在每个<上添加一个按钮。 tr>单击时删除数据库上的相应条目,但是,我似乎无法完成它。我已经完成了我所使用的所有内容的文档,并且没有看到问题所在。这是我的代码:
HTML:
<div class="row">
<div class="col-lg-12" id="table_container">
<table class="table table-striped" id="result_table">
</table>
</div>
</div>
该表是在一个由ajax调用的单独的PHP文件上创建的,这是相关的循环:
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>";
}
所有按钮都是使用正确的名称&#39;创建的。在最终的html(即auto_increment数字)上。
jQuery的:
$(".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);
}
});
});
正如我所说,有点像ajax。如果我错了,请更正我:这会调用deleteWaitlist.php并发布参数&#39; id&#39;价值&#39; $(this).attr(&#39; name&#39;)&#39;这是数据库中的auto_increment值,对于每个条目应该是不同的。
deleteWaitlist.php
$sql = "DELETE FROM waitlist WHERE id=" . $_POST[id] . "";
mysqli_query($c,$sql);
这很简单,不是吗?你能帮我找到错误吗?也许像(int)$ _ POST [id]某处?我发誓我到处都试过。
编辑:奇怪的是,我甚至没有得到控制台日志&#34;点击.deleteWaitlist&#34;当我点击按钮时,就好像我根本没有点击它一样。可能发生什么?我也更改了id&#34; deleteWaitlist&#34;因为它似乎是最佳实践。
答案 0 :(得分:4)
似乎输出html中有多个删除按钮,jQuery在查询ID时只匹配一个元素。
尝试在删除按钮上使用CLASS而不是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>";
}
jQuery的:
$(".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);
}
});
});