美好的一天
在这里需要一些帮助,我的删除按钮有效但单击删除按钮后页面不会自动刷新。我仍然需要手动从数据库中检索数据,这反映出数据已被删除......
这是我删除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';
?>
答案 0 :(得分: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";
}
}
答案 1 :(得分: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";
...
答案 2 :(得分:0)
正如其中一条评论和php文档中所建议的那样:
http://it2.php.net/manual/en/function.header.php:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include或require,函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。
基本上你必须拿出:
echo "DATA DELETED";
如果要重定向页面,尝试回显该字符串有什么意义?
如果你想让它变得有趣,你可以使用Ajax删除它,并在显示消息后在x秒触发setTimeout()
。
或者,如果你真的非常真的,真的,想要这样做,你可以禁用错误报告/显示(使用error_reporting(0)
和ini_set('display_errors', 'Off')
。根据经验我知道它会工作,但这是令人讨厌的,并且极端强烈不推荐