在卸载时重置表单数据

时间:2011-09-26 03:46:07

标签: php forms

我正在使用此代码:

if(isset($_POST['btitle'])) {
    if(count($errors) > 0) {
        foreach($errors as $error)
            $errContent .= "<li>".$error;
        echo notification(
            $errContent,
            FALSE,
            "The following errors were encountered:"
        ) . "<div style='margin-bottom: 10px;'></div>";
    }
    else {
        echo notification(
            "<li>New form added!",
            TRUE,
            "Success:"
        ) . "<div style='margin-bottom: 10px;'></div>";
    }
}

当我在名为'btitle'的输入中键入内容并点击提交按钮时,一切都很好,直到我刷新页面 - 它应该松散数据并在刷新后重新开始,但它仍然说“成功:”甚至如果'btitle'输入为空

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要将用户重定向到同一页面并松开帖子数据。

header("Location: file.php?success=true");//or ?errors[]=blabla
exit();

现在,在同一页面(file.php)中你需要:

if(isset($_GET['success']) && $_GET['success'] == true){
    //handle true
}else if(/* here you can ask about errors or what ever */){

}
顺便说一句,如果你不这样做,那么整个提交表格将会再次提交,就像你重新提交一样。 例如,如果您将数据插入数据库,则在刷新页面时会反复插入数据,因此如果您按照建议重定向,则会丢失已发布的数据,现在您可以显示错误或成功。

答案 1 :(得分:0)

点击刷新后,浏览器会将POST数据重新发送到页面。此问题已被多次询问,例如 here here 。看看其中一些问题的答案,以了解你可以做些什么。