php - 使用 AJAX 和 PHP 从表中删除数据
问题描述
你能解释一下问题出在哪里吗?因为我对此失去了所有希望...插入并加载工作但不删除...当我从删除中删除 if 语句时,它说 id 是未定义的索引。但是为什么当我定义它时它应该是未定义的,var id = $(this).data("id3");
我认为问题将出现在 select.php 中的某个按钮。我对 AJAX 缺乏经验,所以我请你帮忙解决这个问题。
感谢您的回复。(对不起语言)
索引.php
$('.btn_delete').on('click', function()
{
var id = $(this).data("id3");
if (confirm('Naozaj zmazat ?')) {
$.ajax({
url: 'delete.php',
type: 'POST',
data: {delete: 1, id: id},
success: function(data)
{
alert(data);
fetch_data();
}
});
}
});
删除.php
if (isset($_POST['delete'])) {
include("db.php");
$id = mysqli_real_escape_string($conn, $_POST['id']);
$sql = "DELETE FROM suciastka WHERE id_suciastka = '".$id."'";
if (mysqli_query($conn, $sql)) {
echo "Deleted";
}
}
这是我的 select.php
include("db.php");
$output = "";
$sql = "SELECT * FROM suciastka";
$result = mysqli_query($conn, $sql);
$output .= "
<div class='table-responsive'>
<table class='table table-bordered'>
<tr>
<th>ID</th>
<th>NAME</th>
<th>NUMBER</th>
<th>PLACE</th>
<th>DESCR</th>
<th>ACTION</th>
</tr>";
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result))
{
$output .= "
<tr>
<td>".$row['id_suciastka']."</td>
<td>".$row['name_suciastka']."</td>
<td>".$row['number_suciastka']."</td>
<td>".$row['place_suciastka']."</td>
<td>".$row['descr_suciastka']."</td>
<td><button type='button' name='delete_btn' data-id3='".$row['id_suciastka']."' class='btn btn-danger btn_delete'>Delete</button></td>
</tr>";
}
}
$output .= "</table>
</div>";
echo $output;
解决方案
让我们一步一步调试这段代码:
首先,我们应该检查$_POST
您的 PHP 代码中的内容:
die(var_dump($_POST));
在 delete.php 的顶部。
你看到你的身份证了吗?
如果是,那么...只要确保您输入了正确的索引名称 :) 如果不是,我们必须靠近浏览器:
打开您的代码检查器(在 chrome 上按 Ctrl+Maj+I),进入 Network 面板。当您触发 AJAX 查询时,将出现一个新行!只需点击它,您将在“Headers”部分找到有关请求/响应的所有数据,并在底部找到您发送的数据!
你看到你的身份证了吗?如果是,那么您没有向我们展示的代码会执行任何删除您的数据或其他操作的代码 ^^
如果没有,让我们看一下 javascript: 仍然在 Inspector 中,打开“源”面板并找到您的 index.php,更准确地说是您发送给我们的代码。
只需通过单击行号
在您之后添加一个标记。var id = ...
再次触发您的 ajax 请求。您将能够看到您的价值id
。值是否正确?如果是的话......好吧,男孩,我们必须继续一起挖掘!
如果不是(它是“未定义”或“空”),那么这就是浏览器不发送它的原因!在这种情况下,您必须检查 的值,例如在 index.php 中循环的开头$row['id_suciastka']
使用 a 。var_dump($row);
如果似乎没有任何效果,那么我们必须获得有关该问题的更多信息!
希望能帮助到你!:)
推荐阅读
- web - 为什么我在通过 Github 存储库在 Heroku 上托管我的网站时出错?
- github - 这些文件是如何不断更新的?
- arrays - 如何更改数组中特定元素的值?
- python - Scrapy:response.xpath 打印无,但在点击网络链接时,xPath 是正确的
- javascript - 为什么在 forEach 循环完成之前执行代码?
- flutter - 如何从小部件导航到另一个页面
- python - 如何使用 Seaborn 在条形图上显示每组的中值
- asciidoc - 如何让表格占据整个可用画布宽度?
- python - 维基命令 discord.py
- python - 错误:命令出错,退出状态为 1:升级到 Python 3.9.2 后