PHP HTTP POST问题 - 如何将多个表单中的数据作为HTTP Post传递?

4

我有一个第1步页面和一个第2步页面。我想从第1步页面获取信息,然后从第2步页面获取信息,并将其保存为会话信息(这一步我已经完成)。一旦所有信息都被收集,我希望能够使用HTTP POST将其提交到另一个PHP页面。

2个回答

5

如果您想使用 POST 发送数据,您需要在用户点击提交之前将这些变量作为隐藏输入字段添加到表单中:

<input type="hidden" name="firstname" value="<?php echo($_SESSION['firstname']); ?>" />
<input type="hidden" name="surname" value="<?php echo($_SESSION['surname']); ?>" />
<input type="hidden" name="age" value="<?php echo($_SESSION['age']); ?>" />

如果适用的话,您可以在处理阶段引用$_SESSION

或者,您也可以在处理阶段引用$_SESSION,如果这样更方便的话。


如果是一些无法看到的信息,比如用户ID号之类的,该怎么办?我刚想到这个问题。 - matt
如果该项存在于会话中,则可以在HTML中呈现它,或者您可以直接在处理页面上访问会话。 - Ben Everard

3

正如ILMV所说,在后续页面中,您可以将上一页的详细信息复制到隐藏字段中。

或者,如果将表单分成多个页面是设计决策而非技术决策,您可以一次性输出整个表单,然后使用JavaScript每次只显示一定数量的元素。


<input type="hidden" name="requested_amount" value="<? echo $_SESSION['requested_amount'] ?>" /> <input type="hidden" name="first_name" value="<? echo $_SESSION['first_name'] ?>" /> <input type="hidden" name="last_name" value="<? echo $_SESSION['last_name'] ?>" /> 必须使用echo...但是好的建议,我现在就用它。 - matt
1
这个“一次处理特定数量的元素”的技巧实际上非常好,如果JavaScript被禁用,它会很好地降级并解决问题。 - Ben Everard
如果信息是不可见的,比如用户ID号之类的,该怎么办?我刚想到这个问题。 - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接