Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 打印后立即提交表格_Php_Http_Redirect_Post_Get - Fatal编程技术网

Php 打印后立即提交表格

Php 打印后立即提交表格,php,http,redirect,post,get,Php,Http,Redirect,Post,Get,我正在构建一个web应用程序,在这里我需要同时获取和发布变量。get变量将保存日期,并根据该日期更改列出的订单。POST变量用于将表单数据提交到数据库,输出和输入在同一页面上 由于一次只能使用一个HTTP方法,我认为我需要以以下方式使用POST,以便能够读取这两个变量: <form method="POST" action="index.php?date=foo"></form> …但是这个重定向使用GET,所以这不是一个选项 我尝试了以下方法: if(!isset($

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

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

<form method="POST" action="index.php?date=foo"></form>
…但是这个重定向使用GET,所以这不是一个选项

我尝试了以下方法:

if(!isset($_GET["date"])) {
        echo '
            <form method="POST" action="'.$_SERVER["PHP_SELFT"].'?date='.date("Y-m-d").'"></form>
        ';
    }
这是可以的,但是表单需要表现为重定向,所以在回显后,它需要自动提交

我怎样才能做到这一点


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

使用Javascript可能类似于:

为表单指定一个名称:

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

在我看来,您不需要Javascript:

 <form name="MyForm" method="POST" action="<?=$_SERVER["PHP_SELFT"]?>?date='<?=(isset($_GET['date'])) ? $_GET['date'] : date("Y-m-d")?>"></form>
它将日期放在URL中。如果确实设置了$\u GET['date'],它会将$\u GET['date']设置为日期。否则,它将给出当前日期


希望这有帮助!:

javascript/jquery不是一个选项?如果没有替代方案,那么它必须是,但我想最小化客户端代码,因为它已经是JS-heavy了。不幸的是,没有替代方案,至少我不知道:/抱歉,我不理解这里的操作流程。如果必须这样做,我会基于$\u GET-Params准备表单,然后让用户填写表单,并使用$\u POST-Request将表单提交到URL,该URL将重复使用旧的$\u GET-Variables,或者将$\u GET-Stuff写入隐藏的表单字段。所以我并不完全理解这个问题…为什么表单应该自动提交?用户应该触发…他希望表单自动提交,在我看来,这在phpTrue中是不可能的,但是为了放置正确的日期,他不需要javascript。
document.MyForm.submit();
 <form name="MyForm" method="POST" action="<?=$_SERVER["PHP_SELFT"]?>?date='<?=(isset($_GET['date'])) ? $_GET['date'] : date("Y-m-d")?>"></form>