所以我正在使用wordpress,但wordpress社区似乎对严格的PHP或其他任何东西都不太了解。
我有一个名为Gravity Forms的插件,我用它来创建一个非常复杂的表单/调查。但这笔交易是一个多部分形式,我不知道如何从第一个到第二个获得所有表单数据。
我可以通过查询字符串传递数据,但是我传递了25个字段的信息,因此它不适合我。
一旦提交了form1,我就可以将它重定向到第二页,其中包含一些代码,如
$foo = $_POST['field_1_1'];
其中field_1_1是上一个表单中输入的名称?
我之前使用过$ _GET查询字符串,但我不确定我刚刚说明的例子是如何使用$ _POST
答案 0 :(得分:1)
您可以在PHP中使用$_SESSION
变量,这些变量在请求之间保留(不管您的PHP会话配置多长时间 - 通常是几个小时)
或者,您也可以(在网络使用方面效率不高)将旧表单数据输出到<input type="hidden">
元素中。如果您打算这样做,我会考虑使用serialize函数
如果您在大规模生产环境中做某事,您可能还想查看内存缓存或redis数据库
您可能希望考虑的其他事情是使用JS在客户端进行分页,以便在填写完所有页面后提交表单
答案 1 :(得分:0)
是的,这是正确的用法。只需确保您的表单使用POST
方法提交。
只需确保(与$_GET
一样)用户输入不受信任。请务必清理它们以进行数据库交互。
答案 2 :(得分:0)
是的,请更改您的表单:
<form method="post" action="page_to_post_to.php" name="form1" id="form1">
....
</form>
您正在将method
更改为post
,将action
更改为新页面。新页面是您可以从。
$_POST
变量的页面
答案 3 :(得分:0)
如果您打算使用单独的表单,也许您会发现使用$ _SESSION超全局数组暂时在会话中保存$ _POST数据很有用。
或者您可以使用JavaScript分割长格式并将其发送到最终目的地。