我有两种形式form 1
和form 2
。
form 1
有 20 个数据字段,它的操作是更新。form 2
我有另一个动作,但我想从 form 1
中获取 20 个数据字段。
有没有可能的方法以及如何做到这一点?表格 1 和表格 2 也在同一页面中。
我已经有一个解决方案,它将 20 个隐藏字段放在表单 2 中,因此形式 2 可以从那里得到它,这很乏味。但是我可以问你们有没有更简单的想法?
您可以将表单 1 中的所有输入保存在会话变量中,并在表单 2 中恢复它。为此,编写一个函数,将所有 $_GET 和 $_POST 变量存储在 $_SESSION 数组的元素中(使用参数名称作为键)。
"问题"是PHP开发人员在某个时候解决的问题。
最好的方法是将以前形式的数据保存在 $_SESSION
.但是,如果您在同一会话中填写表格,这将是一个有效的解决方案。
如果您正在构建类似电子商务网站的东西,用户必须填写多个付款表单,或者一些大型测试应用程序,其中学生填写多表单测试,则最好将每个表单的数据存储在数据库中并将其关联到UserId
。这样,用户就可以从不同位置继续填写表单。
附言如果您改用 AJAX,则通常只会在现有应用程序之上添加另一层复杂性。特别是如果你在JavaScript方面的技能有限。
我认为您的解决方案还不错,简单且快速!但唯一更好的方法,就是ajax。在 ajax 中,您不限于表单,您可以从每个表单中获取每个字段,然后手动发送它们。
如果您不熟悉 ajax,并且想要使用非 ajax 解决方案,则可以使用一个窗体并将最后两个窗体的所有字段放入此新的单个窗体中,并使用一个操作文件来响应此窗体。在服务器端,您可以检查唯一字段的值。
客户端 :
<form action="test.php">
<!-- fields of form 1 -->
<input type="text" name="text1"/>
<input type="text" name="text2"/>
.
.
.
<input type="text" name="text20"/>
<!-- fields of form 2 -->
<input type="text" name="text21"/>
<input type="text" name="text22"/>
.
.
.
<input type="text" name="text40"/>
<input type="submit" value="send"/>
</form>
服务器端:
<?php
if ( isset($_GET["text1"]) )
//do related jobs to form 1 here, and you can use all of filled fields
else
//do related jobs to form 2 here, and you can use all of filled fields
?>