3

我做了这个函数来从表中删除记录。删除操作完成后,页面显示所有数据(包括删除的数据),但是,我需要刷新或重新加载页面才能看到删除行后的结果。如何在以下代码中完成?提前谢谢!!

            public function deletedata(){

        if(isset($_GET['del_id'])){

            $delete_id = $_GET['del_id'];

            $query ="DELETE FROM tbl_data WHERE project_id ='".$delete_id."' ";

            $this->databaseObject->getConnection()->query($query);
    }
4

2 回答 2

2

通常您会使用该header功能重新加载页面。

像这样的东西应该工作:header('Location: '.$_SERVER['REQUEST_URI']);

http://php.net/manual/en/function.header.php

或者,根据您的代码结构,您可以简单地在检索记录的代码之前调用删除代码。这样您就可以避免重新加载页面。

于 2013-01-16T01:14:25.013 回答
1

正如 launcek 的替代方案中所提到的,可能不需要重新加载页面。只需在呈现 HTML 之前执行任何必要的记录删除。

<?php

$delete_id=isset($_GET['del_id'])&&is_numeric($_GET['del_id'])?$_GET['del_id']:false;
if ($delete_id) {
  $query ="DELETE FROM tbl_data WHERE project_id ='".$delete_id."' ";
  $this->databaseObject->getConnection()->query($query);
}
$query ="SELECT * FROM tbl_data WHERE 1;";
$this->databaseObject->getConnection()->query($query);

?>
<html>

// some php/html to loop through the query and display records

</html>

这假设您的 ID 是数字。如果没有,我强烈建议在将变量引入数据库之前检查/转义变量。

于 2013-01-16T01:18:32.063 回答