-1

再会

在这里需要一些帮助,我的删除按钮有效,但在我单击删除按钮后页面不会自动刷新。我仍然需要手动从 db 中检索数据,这将反映出数据已被删除...

这是我删除 php 的代码:我怎样才能让它自动刷新页面?

<?php
require 'include/DB_Open.php';

$id = $_POST['id'];
    $idtodelete = "'" . implode("','",$id) . "'";


    $query = "DELETE FROM tbl WHERE ticket in (" . $idtodelete . ")";
    $myData = mysql_query($query);
    echo "DATA DELETED";

    if($myData)
    {
    header("Location: delete.php");
    }

include 'include/DB_Close.php';
?>
4

3 回答 3

0

我建议在删除逻辑之后获取数据。然后在取票之前执行删除逻辑。然后甚至不需要重定向到同一页面。

//
// DELETE
//
if (isset($_POST['delete'] && isset($_POST['id'])) {
     // Do delete stuff, 
     // notice delete variable which would be the name of the delete form button e.g.
     // If you like, you can still echo "Data deleted here" in e.g. a notification window
}
//
// FETCH data
//
$query = "Select * FROM tbl";
...
于 2013-04-23T07:54:01.707 回答
0

正如其中一条评论和 php 文档所建议的那样:

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

请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。使用 include 或 require 函数或其他文件访问函数读取代码并在调用 header() 之前输出空格或空行是一个非常常见的错误。使用单个 PHP/HTML 文件时也存在同样的问题。

基本上你必须拿出:

echo "DATA DELETED";

如果页面无论如何都要被重定向,那么尝试回显该字符串有什么意义?

如果你想让它变得花哨,你可以使用 Ajax 删除它,并setTimeout()在显示消息后触发 JavaScript x 秒。

或者,如果您真的非常非常非常非常想要这样做,您可以禁用错误报告/显示(使用error_reporting(0)and ini_set('display_errors', 'Off')。根据经验,我知道它会起作用,但它很讨厌并且极不推荐

于 2013-04-23T08:12:29.250 回答
0

如果你用这个更好地使用 post 方法

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
    $id         = $_POST['id'];
    $idtodelete = "'" . implode("','",$id) . "'";
    $query      = "DELETE FROM tbl WHERE ticket in (" . $idtodelete . ")";
    if (mysql_query($query))
    {
      header("Location: delete.php");
    } else {
      echo "Can not delete";
    }
}
于 2013-04-23T07:40:58.380 回答