使用隐藏的“;形式“;传递变量


Using hidden "form" to pass variables

只是学习如何在php中逐页传递变量,并试图为我找到最好的方法,因为我必须在5页之间传递大约10个变量。在第一页上,有一个表单有意义吗:

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

那么在下一页上,我可以使用POST接收这个变量吗?我不想有一个实际的形式,只是使用它作为我的变量的存储区域。另外,如果第二个页面被称为second.php。,我该如何使用action=

感谢

简短回答:表单只有在提交时才有效。您可能想要使用会话

更长的答案:

  • 没有用户输入的表单是没有意义的。这就是它存在的目的
  • 表单上的CCD_ 3属性反映了表单将被提交到哪里。如果处理页面是second.php,那么action=属性应该指向那里
  • 会议并不是唯一的可能。PHP还可以设置cookie,如果服务器不关心数据(仅用作介质),则可以使用HTML5的localStorage

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

不能使用$_POST变量在用户会话中存储数据。

您应该使用:

  • 会话
  • Cookie
  • HTML5存储

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

如果我正确理解您的问题,您可以尝试以下操作来POST您的值,而无需将表单显示在页面上或实际出现在页面上。您需要引用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"];

希望能有所帮助。