为什么我的提交按钮没有重定向到新页面(使用PHP)

时间:2015-10-29 14:06:02

标签: php html

单击“确认”按钮时,我尝试将页面重定向到$ PaymentPage。出于某种原因,当我点击它时根本没有任何事情发生。

我已经制作了表单方法帖子,我已经检查过,如果提交,请直接到$ PaymentPage。

       <form method="post"></form> 
        <div class="col-sm-offset-2 col-sm-4">
            <button type="submit" class="btn btn-default">Confirm</button>
        </div>
        </form>

        <?php
        if ( isset( $_POST['submit'] ) ) {
            header("Location: $PaymentPage", false);
        }
        ?>

3 个答案:

答案 0 :(得分:4)

这里有一些问题。首先,您没有提交按钮的name属性来匹配条件语句,因此永远不会发生。

另外,您正在使用PHP顶部的HTML标题之前输出。

然后,</form>之后的额外<form method="post">标记;需要删除。

因此,您需要将代码修改为:

<?php
if ( isset( $_POST['submit'] ) ) {
    header("Location: $PaymentPage", false);
    exit; // added to stop execution if more code is below it
}
else{
   echo "It is not set.";
  }
?>

<form method="post">
<div class="col-sm-offset-2 col-sm-4">
    <button name="submit" type="submit" class="btn btn-default">Confirm</button>
</div>
</form>

错误报告会向您抛出未定义的索引提交通知。

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:只应在暂存时进行显示错误,而不是生产。

<强> N.B:

现在,$PaymentPage未定义,因此我不知道您在哪里定义它或该值应该是什么。

旁注:当未定义对另一个文件的操作时,表单默认为“self”。

参考文献:

答案 1 :(得分:0)

它应该给你一个错误,你可以启用error_reporting,你需要在任何输出之前的标题,所以将它移动到文件的顶部。

此外,您关闭表单,这是您的按钮无效的原因

<form method="post"></form> 

答案 2 :(得分:-3)

您在其他一些嵌套问题上过早关闭了表单元素,还将变量附加到这样的字符串:

"String". $variable ." more string";

HTML:

<form method="post">
    <div class="col-sm-offset-2 col-sm-4">
        <input type="submit" name="button" class="btn btn-default" value="Confirm">
    </div>
    </form>

PHP:

    <?php
    $page = "http://www.google.com/";
    if ( isset( $_POST['button'] ) ) {
        header("Location: ". $page,false);
    }
    ?>