如何在PHP表单提交后显示成功消息?

7
这里是代码。我希望它按照以下方式运行--

表单提交 --> page2.php --> 重定向 --> page1.php(这里是消息。弹出或其他方式呈现)

page1.php

<form action="page2.php" method="post" enctype="multipart/form-data" class="form-inline subscribe-form">

                    <input type="name" name="name" placeholder="Jack">
                </div>
                <button type="submit" name="sub" value="sub" >Submit</button>

            </form>

page2.php

    <?php
//include necessary

if(isset($_POST['sub'])) {

    $nameget = mysqli_real_escape_string($dbconnect, $_POST['name']);
    $sqlentry = .....bla bla......//insert into DB
}

$getsql = mysqli_query($dbconnect, $);


if($getsql){
    mysql_close($dbconnect);
    header('location:page1.php');

}



?>

1
也许可以通过 URL 将成功消息传递给 page1.php 页面? - frz3993
2个回答

12

在您的位置有:

header('location:page1.php');

在位置上添加一个变量,例如:

header('location:page1.php?status=success');

并且在page1.php页面上,执行类似以下的操作:

if( $_GET['status'] == 'success'):
    echo 'feedback message goes here';
endif;

没问题,谢谢。但是当我刷新“page1.php?status = success”页面时,有没有办法跳转到“page1.php”? - sofa_maniac
当然,这取决于你的需求。也许可以将状态存储在会话中,或者只需使用JavaScript进行简单重定向,或者在警告或模态窗口中显示反馈信息,该窗口链接到page1.php页面。 - pbs

3
这样,您的闪存消息在刷新后将不会再次显示出来。
<?php session_start();
if(isset($_SESSION['msg']) && $_SESSION['msg'] != ''){
    echo $_SESSION['msg'];
    unset($_SESSION['msg']);
}
?>
    <form action="page2.php" method="post" 
enctype="multipart/form-data" class="form-inline subscribe-form">

                    <input type="name" name="name" placeholder="Jack">
                </div>
                <button type="submit" name="sub" value="sub" >Submit</button>    


           </form>

并且
<?php
session_start();
//include necessary

if(isset($_POST['sub'])) {

    $nameget = mysqli_real_escape_string($dbconnect, $_POST['name']);
    $sqlentry = .....bla bla......//insert into DB
}

$getsql = mysqli_query($dbconnect, $);
  if($getsql){
        mysql_close($dbconnect);
        $_SESSIOM['msg'] = 'Value Inserted or whatever';
        header('location:page1.php');        
    } 
?>

不要忘记取消设置 $_SESSION 消息,否则在页面刷新后它仍将存在。 - Rimble
还要在顶部添加一个 $_SESSION['msg'] 的 isset() 语句检查,否则会抛出错误! - Rimble
好的,当然可以。已经添加了相同的内容。 - Tarun Upadhyay
稍微修改了一下你的答案 :) - Rimble

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接