打印后立即提交表格

时间:2014-11-25 10:49:59

标签: php http redirect post get

我正在构建一个Web应用程序,我需要同时使用GET和POST变量。 get变量将保存日期,并根据该更改列出的订单。 POST变量用于将表单数据提交到数据库(我在同一页面上输出和输入)。

由于一次只能使用一种HTTP方法,我认为我需要以下列方式使用POST才能读取这两个变量:

<form method="POST" action="index.php?date=foo"></form>

如果没有设置日期,这就是我将日期设置为今天的日期:

if(!isset($_GET["date"])) {
        header("location: index.php?date=". date('Y-m-d'));
    }

..但是这个重定向使用GET,所以这不是一个选项。

我尝试了以下内容:

if(!isset($_GET["date"])) {
        echo '
            <form method="POST" action="'.$_SERVER["PHP_SELFT"].'?date='.date("Y-m-d").'"></form>
        ';
    }

这没关系,但表单需要表现为重定向,因此在回显之后,需要自动提交。

我怎样才能做到这一点?

如果可能的话,我也愿意接受以其他方式实现此功能的建议。

2 个答案:

答案 0 :(得分:0)

使用Javascript可能是这样的:

为表单命名:

if(!isset($_GET["date"])) {
        echo '
            <form name="MyForm" method="POST" action="'.$_SERVER["PHP_SELFT"].'?date='.date("Y-m-d").'"></form>
        ';
    }

然后您可以使用javascript简单地提交表单,如:

document.MyForm.submit();

答案 1 :(得分:0)

我认为你不需要Javascript:

 <form name="MyForm" method="POST" action="<?=$_SERVER["PHP_SELFT"]?>?date='<?=(isset($_GET['date'])) ? $_GET['date'] : date("Y-m-d")?>"></form>

它将日期放在URL中。如果确实设置了$ _GET [&#39; date&#39;],则会将$ _GET [&#39; date&#39;]设置为日期。否则它将给出当前日期。

希望这有帮助! :)