使用隐藏的“表单”来传递变量

时间:2012-08-01 14:55:13

标签: php variables

只是学习在php中从页面到页面传递变量,并尝试找到最适合我的方法,因为我必须在5页之间传递~10个变量。在第一页上,有一个表单是否有意义:

<form method="post">
    <input type="hidden" name="test" value="<?php $test ?>" />
</form>

然后在下一页上我可以使用POST收到此变量吗?我不想有一个ACTUAL表单,只是将它用作我的变量的存储区域。另外,如果第二页被称为second.php,我将如何用于action=

感谢任何帮助,谢谢

5 个答案:

答案 0 :(得分:7)

简答:表单仅在提交时有效。您可能希望使用 sessions

更长的答案:

  • 没有用户输入的表单没有意义。这就是它的存在。
  • 表单上的action=属性反映了表单的提交位置。如果处理页面为second.php,则action=属性应指向该位置。
  • 会话不是唯一的可能性。 PHP也可以 set cookies ,如果服务器不关心数据(仅用作媒介),您可以使用HTML5的 localStorage

答案 1 :(得分:3)

真的,如果您需要在所有五个页面中传递10个变量,那么最好使用sessions。您可以将所有这些存储为$_SESSION变量的一部分,只要会话保持活动状态,就可以从任何页面访问它们。

答案 2 :(得分:0)

您无法使用$ _POST变量在用户的会话中存储数据。

您应该使用:

  • 会话
  • 缓存
  • HTML5存储

答案 3 :(得分:0)

这取决于你想做什么,你有各种选择: 1.使用您概述的表格和帖子。在这种情况下,在第1页上,您的操作=“second.php” 2.使用GET通过URL传递数据 3.前两个职位所述的会议 4.饼干

答案 4 :(得分:0)

如果我正确理解了您的问题,您可以尝试以下操作来发布您的值,而不会在页面上显示该表单或实际上在页面上。您需要引用jQuery库才能使用此代码。

    function hiddenPost(param1) {
        $('<form />')
        .hide()
        .attr({ method: "post" })
        .attr({ action: "http://my-URL-here.com/SomePage.php" })
        .append($('<input />')
            .attr("type", "hidden")
            .attr({ "name": "post_data" })
            .val(param1)
        )
        .append('<input type="submit" />')
        .appendTo($("body"))
        .submit();
    }

您可以在POST页面上检索POST值,方法与使用带有表单标记的常规POST一样。

对于PHP: var postData = $ _POST [“post_data”];

希望有所帮助。