我正在尝试创建一个按钮来删除使用PHP和AJAX从MySQL中选择的一行数据。
正如标题所示,我创建了按钮,并将其作为表中的最后一列进行定位。该表从MySQL中提取,并正确显示所有值。还有另一个新条目的表单,它很好用 我已经在线通过适当的验证器工具运行了我的代码,它们通过时没有错误。所以,我想知道我的问题是它没有传递要删除的行的值。或者说,总体上什么是不正确的,或者是否有更好的编码方法。我对PHP,尤其是AJAX相当陌生,所以我想知道我在这里哪里出错了?提前谢谢,如果需要更多信息,我很乐意接受 以下是HTML和PHP的代码:我正在尝试创建一个按钮来删除使用PHP和AJAX从MySQL中选择的一行数据。,php,ajaxform,Php,Ajaxform,正如标题所示,我创建了按钮,并将其作为表中的最后一列进行定位。该表从MySQL中提取,并正确显示所有值。还有另一个新条目的表单,它很好用 我已经在线通过适当的验证器工具运行了我的代码,它们通过时没有错误。所以,我想知道我的问题是它没有传递要删除的行的值。或者说,总体上什么是不正确的,或者是否有更好的编码方法。我对PHP,尤其是AJAX相当陌生,所以我想知道我在这里哪里出错了?提前谢谢,如果需要更多信息,我很乐意接受 以下是HTML和PHP的代码: <?php @$db = new my
<?php
@$db = new mysqli('localhost', 'root', 'pwdpwd', 'pet_shop');
if (mysqli_connect_errno())
{
echo 'Cannot connect to database: ' . mysqli_connect_error();
}
else
{
$groomings = 'SELECT * from grooming';
$result = $db->query($groomings);
}
?>
<table align="center" border="1">
<tr>
<th>ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Zip</th>
<th>Phone</th>
<th>Email</th>
<th>Pet Type</th>
<th>Breed</th>
<th>Pet Name</th>
<th>Neutered/Spayed</th>
<th>Pet Age</th>
<th>Edit/Delete</th>
</tr>
<?php
while ($row = $result->fetch_assoc())
{
echo '<tr>';
echo '<td>' . $row['GroomingID'] . '</td>';
echo '<td>' . $row['FirstName'] . '</td>';
echo '<td>' . $row['LastName'] . '</td>';
echo '<td>' . $row['Address'] . '</td>';
echo '<td>' . $row['City'] . '</td>';
echo '<td>' . $row['State'] . '</td>';
echo '<td>' . $row['Zip'] . '</td>';
echo '<td>' . $row['PhoneNumber'] . '</td>';
echo '<td>' . $row['Email'] . '</td>';
echo '<td>' . $row['PetType'] . '</td>';
echo '<td>' . $row['Breed'] . '</td>';
echo '<td>' . $row['PetName'] . '</td>';
echo '<td>' . $row['NeuteredOrSpayed'] . '</td>';
echo '<td>' . $row['PetAge'] . '</td>';
echo '<td>' . '<button action="delete.php" class="del_btn" rel="'.$row["GroomingID"].'">' . 'Delete' . '</button>' . '</td>';
echo '</tr>';
}
?>
身份证件
名字
姓
地址
城市
陈述
拉链
电话
电子邮件
宠物型
繁殖
昵称
绝育/绝育
宠物年龄
编辑/删除
以及Jquery/Ajax:
<script>
$(document).ready(function(){
$('.del_btn').click(function(){
var del_id = $(this).attr('rel');
$.post('delete.php', {delete_id:del_id}, function(data) {
if(data == 'true') {
$('#'+del_id).remove();
} else {
alert('Could not delete!');
}
});
});
});
</script>
</table>
<?php
$result->free();
$db->close();
?>
$(文档).ready(函数(){
$('.del_btn')。单击(函数(){
var del_id=$(this.attr('rel');
$.post('delete.php',{delete\u id:del\u id},函数(数据){
如果(数据=='true'){
$('#'+del_id).remove();
}否则{
警报('无法删除!');
}
});
});
});
下面是运行查询的delete.php文件:
<?php
function dbString($string)
{
$string=trim($string);
if (get_magic_quotes_gpc())
{
return $string;
}
else
{
return addslashes($string);
}
}
@$db = new mysqli('localhost', 'root', 'pwdpwd', 'pet_shop');
if (mysqli_connect_errno())
{
echo 'Cannot connect to database: ' . mysqli_connect_error();
}
if(isset($_POST['delete_id']) && !empty($_POST['delete_id']))
{
$delete_id = mysql_real_escape_string($_POST['delete_id']);
$result = mysql_query("DELETE FROM grooming WHERE GroomingID=".$delete_id);
}
?>
<!DOCTYPE HTML>
<html>
<head>
</head>
<body
onload="document.createElement('form').submit.call(document.getElementById('newEntry'))">
<form action="admin.php" id="newEntry">
<input type="submit" value="confirm">
</form>
</body>
在实际代码中,您试图删除一个不存在的HTML元素
$('#'+del_id).remove();
我在您的代码中没有看到具有此类ID的元素。请尝试执行以下操作:
<?php
while ($row = $result->fetch_assoc())
{
echo '<tr id="'.$row['GroomingID'].'">'; // <-- HERE
echo '<td>' . $row['GroomingID'] . '</td>';
您可以删除dbString()
function-magic quotes是一项非常传统的功能,不再推荐使用。我建议删除@
错误抑制操作符。我已将id添加到行中,并在JQuery中更改为$('delete_id')。remove();并删除了dbstring函数和@。但是,它仍然不会传递变量。