【发布时间】:2020-03-28 08:33:52
【问题描述】:
坚持使用 POST 方法实现标准 HTML 表单。
我有一个包含 4 个不同字段的简单 HTML/PHP 表单(比如 https://example.com/dir/BBB.php):
<form method="post" action="<what-to-put-here>.php" target="_top">
<input type="text" name="name" placeholder="Name..." value="Input Name" required>
<span>Code:</span><select name="code" required><option value="" disabled selected>Choose Code</option><option value='AAA'>AAA</option><br><option value='BBB'>BBB</option><br><option value='CCC'>CCC</option><br><option value='DDD'>DDD</option></select>
<span>Start Date:</span><select name="startdt" required><option value='2019-11-29'>Fri, 29Nov19</option><br><option value='2019-11-27'>Wed, 27Nov19</option><br><option value='2019-11-26'>Tue, 26Nov19</option><br><option value='2019-11-25'>Mon, 25Nov19</option><br><option value='2019-11-22'>Fri, 22Nov19</option><br></select>
<span>End Date:</span><select name="enddt" required><option value='2019-11-29'>Fri, 29Nov19</option><br><option value='2019-11-27'>Wed, 27Nov19</option><br><option value='2019-11-26'>Tue, 26Nov19</option><br><option value='2019-11-25'>Mon, 25Nov19</option><br><option value='2019-11-22'>Fri, 22Nov19</option><br></select>
<input type="submit" value="Submit">
</form>
有两个要求:
1) 所有 4 个字段均为必填项。一旦用户填写/选择值并点击“提交”按钮,需要从提交的表单中接收“代码”的值,然后根据为“代码”字段选择的值,它应该重定向到https://example.com/dir/<code>.php网址。
2) 用户提交的其余三个值(name、startdt 和 enddt)也应该在重定向的 URL 中接收(比如在 PHP 变量中,$start_date= $_POST["startdt"])
为了清楚地举一个例子,假设用户在https://example.com/dir/BBB.php 上提交值,并选择/输入值为 (name="Michael", code="DDD", startdt='2019- 11-29', enddt='2019-12-01')。然后在点击提交按钮时,他应该被带到https://example.com/dir/DDD.php 页面(因为他已经提交了 DDD 代码),其中其他三个值(name="Michael", startdt='2019-11-29', enddt=' 2019-12-01') 也应该可以在 PHP 变量中捕获。
我尝试过使用中间文件,以及使用 onchange 位置功能,但无法达到预期的效果。任何帮助将不胜感激。
【问题讨论】:
-
这是你应该用 JS 做的事情。在更改代码输入时,您会更改表单标记中的操作
-
对于第 2 部分,我建议您使用会话
-
对于第 1 部分,如果不查看后端代码,很难判断出什么问题
-
@Cid,第一部分是重定向。当我使用自动重定向到新 URL 的 onchange 位置功能时,其余 3 个值无法在页面移动时被捕获。这就是为什么我一直在寻找一种同时满足这两个要求的整体方法。我还想过将代码作为 LAST 字段,以便可以更早地捕获其他三个值,但我需要将“代码”作为第二个字段。
-
您可以使用 $_SESSION 在重定向之前存储值并在下一个脚本中获取它们。