表单提交后将PHP变量回显为HTML

时间:2019-05-11 11:33:18

标签: php html http-headers html-form

提交表单后,我将使用以下代码重定向至上述标题位置:

PHP部分:

$TestMessage = "This is a sample message. This is not a constant value. Original data will be collecting from DB";

if(mysqli_affected_rows($conn) > 0) {   

header('Location:mydaomain/expenses?success=1');    

}else{

header('Location:mydomain/expenses?failed=1');

} 

HTML部分:

<div class="SubResult" id="SubResult" >

    <?php 

        if ( isset($_GET['success']) && $_GET['success'] == 1 )

            {
                echo $TestMessage;
                echo "<h1 style='color:green;padding:3%;'>Success !!</h1>";
            }

        if ( isset($_GET['failed']) && $_GET['failed'] == 1 )

            {
                echo $TestMessage;
                echo "<h1 style='color:red;padding:3%;'>SQL Error !!</h1>";
            } 
    ?>  

</div> 

上面的代码是,HTML不会显示$ TestMessage PHP变量内容。

为什么我在PHP中使用此标头选项:

更早之前,在原始提交后刷新页面时都会提交表单。我发现此解决方案可以避免该问题。 当我从php文件中删除此标头部分时,我能够将变量回显到PHP(但是在页面刷新问题上,我面临着表单提交的问题)

有什么办法可以将此变量回显到HTML?

1 个答案:

答案 0 :(得分:1)

使用标头时,您正在执行重定向,因此变量$ TestMessage在此之后不可用,如果要使用它,请确保使用查询字符串进行传递,例如:

header('Location:mydaomain/expenses?success=1&testMessage='.$TestMessage);   

然后在下一页中使用$ _GET ['testMessage']来获取他的值。