【发布时间】:2017-03-17 20:26:57
【问题描述】:
我正在尝试使用 ajax/jquery 制作动态表。
添加、更新等其他功能正在运行,但我的删除功能似乎不起作用。我正在研究这个问题,但没有结果。
下面是sn-p,它从数据库中获取数据并形成一个表。 每行都有更新/删除按钮,这些按钮可以引导到相应的功能。
if(mysqli_num_rows($result) > 0)
{
$number = 1;
while($row = mysqli_fetch_assoc($result))
{
$data .= '<tr>
<td>'.$number.'</td>
<td>'.$row['Surname'].'</td>
<td>'.$row['Name'].'</td>
<td>'.$row['Address'].'</td>
<td>'.$row['Telephone'].'</td>
<td>'.$row['PurchaseDate'].'</td>
<td>'.$row['Model'].'</td>
<td>'.$row['SerialNumber'].'</td>
<td>'.$row['Notes'].'</td>
<td>
<button onclick="GetUserDetails('.$row['id'].')" class="btn btn-warning">Update</button>
</td>
<td>
<button onclick="DeleteUser('.$row['id'].')" class="btn btn-danger">Delete</button>
</td>
</tr>';
$number++;
}
}
这是我的删除函数,它从另一个 php 接收行的 id,它从数据库加载表。
删除函数脚本
function DeleteUser(id) {
var conf = confirm("Are you sure, do you really want to delete User?");
if (conf == true) {
$.post("ajax/deleteUser.php", {
id: id
},
function (data, status) {
// reload Users by using readRecords();
readRecords();
}
);
}
}
删除函数 php
<?php
// check request
if(isset($_POST['id']) && isset($_POST['id']) != "")
{
// include Database connection file
include("db_connection.php");
// get user id
$client_id = $_POST['id'];
// delete User
$query = "DELETE FROM Clients WHERE id = '$client_id'";
if (!$result = mysqli_query($query)) {
exit(mysqli_error($result));
}
}
?>
我什至尝试进入 mysql 而不是 mysqli,它以某种方式工作。我有点假设mysqli具有与mysql不同的功能?好吧,我听说 mysql 已被弃用,但似乎我在这里做错了什么......
我不擅长编程,我正在学习,因为它成了我的新爱好。任何提示将不胜感激。
【问题讨论】:
-
尝试将
if(isset($_POST['id']) && isset($_POST['id']) != "")改为if(isset($_POST['id'])) -
@RazibAlMamun 之前试过,没用。无论如何,谢谢你的提示
-
所以请求到达
deletefunction.php但mysql查询失败?你是对的,不要使用mysql_*函数。这目前对 SQL 注入开放。 -
db_connection.php是否打开mysqli或mysql_*连接?mysqli_query需要连接字符串作为其第一个参数。见php.net/manual/en/mysqli.query.php。 @RazibAlMamun 也是正确的。isset永远不会返回'',你可能可以使用if(!empty(trim($_POST['id']))) {。 -
目前一切都在mysqli上