Php 基于先前输入的表格
我刚接触PHP,有一个问题我似乎找不到答案 我必须创建一个跨多个页面的事件创建表单。在一个页面上有一个表格,垂直方向上有一个票证类型,只列出上一页上选择的票证类型,水平方向上有一个基于上一页的“sections”列。然后,该表将允许用户输入价格,然后根据不同的部分分配给票证类型 我的问题是,单独使用html/PHP是否可以做到这一点?我正在使用POST方法在表单的页面之间移动,然后在最后将其全部添加到数据库中,但我是否应该使用其他方法来实现这一点Php 基于先前输入的表格,php,html,sql,forms,Php,Html,Sql,Forms,我刚接触PHP,有一个问题我似乎找不到答案 我必须创建一个跨多个页面的事件创建表单。在一个页面上有一个表格,垂直方向上有一个票证类型,只列出上一页上选择的票证类型,水平方向上有一个基于上一页的“sections”列。然后,该表将允许用户输入价格,然后根据不同的部分分配给票证类型 我的问题是,单独使用html/PHP是否可以做到这一点?我正在使用POST方法在表单的页面之间移动,然后在最后将其全部添加到数据库中,但我是否应该使用其他方法来实现这一点 我希望这个问题有道理,但我的立场不是行话。有几种
我希望这个问题有道理,但我的立场不是行话。有几种方法可以采取:
您可以做的(不一定应该,这是您自己的判断)是将所有
POST
ed数据保存为会话变量。这可以帮助您清理代码混乱,否则您必须将所有表单中的所有数据发布到所有表单中,以便通过所有页面导航维护信息。只要第一个页面具有带有POST的表单方法,就可以完成此操作。
以下是步骤:
这听起来是一个很好的例子 在第一页上,您的表单可以随POST一起提交,然后您可以将数据存储在用户会话中:
session_start();
$_SESSION['form_submission'] = $_POST;
然后,在第2页(或任何其他页面)上,您可以通过以下方式访问:
session_start();
$form_variable = $_SESSION['form_submission']['field_name'];
您可以更一般地存储/检索它们,以使其更具可读性:
$_SESSION['field1'] = $_POST['field1'];
$field1 = $_SESSION['field1'];
PHP和HTML可以很好地管理您心目中的系统 要开始,请执行以下操作: PHP使用会话管理从一个页面到下一个页面的数据,创建如下流程:
$myVariable = $_SESSION['mySessionVar'];
session_start();
您现在可以将数据保存到会话:
$_SESSION['mySessionVar'] = 'This is my session variable';
无论何时需要从会话中检索,请确保a)session\u start()
已被调用,b)按如下方式检索:
$myVariable = $_SESSION['mySessionVar'];
希望这能有所帮助。我对它有一定的理解,但不确定该如何将其添加到每页中。此时,我使用以下方法存储每个条目:由于您是PHP新手,请尝试将其添加到打开第一个PHP标记的每个页面顶部:
,这样您就可以在页面中的任何位置使用$\u会话。我遇到了麻烦。我在每个页面的开头添加会话开始代码,但在第二个页面上,我尝试使用$VenuName=$\u POST['venue\u name']将一些发布的信息添加到var中;在中,但在下一页中,我不能。那么您是否确保在第一个实例中将您的var保存到会话中$\u会话['venueName']=$venueName
然后当您再次需要它时:$venueName=$\u会话['venueName']代码>我撞到墙了。我在每个页面的开头添加会话开始代码,但在第二个页面上,我尝试使用$VenuName=$\u POST['venue\u name']将一些发布的信息添加到var中;在中,但在下一页中,我不能。这是预期的行为。您需要在任何/每个页面上重新声明要在其上使用的变量。因此,如果您想在第2页上声明$venueName
,请在第2页上声明。如果你想把它也放在第3页上,你还必须在第3页上声明它。现在我把它作为$会话['venture\u name']=$POST['venture\u name']$VenuName=$_SESSION[‘场馆名称’];如果不使用$\u POST,它将不起作用。仅仅说$venueName=$\u POST['vention\u name']有什么好处@user1546076当您需要访问其他页面上的值时,可以看到该优势<代码>$venueName=$\u POST['vention\u name']当且仅当表单发布在当前页面上时,code>将完全正常工作。如果您想访问当前未发布到的其他页面上的值,将该值存储在会话中是一个很大的好处。我认为这一点让我感到困惑。因为我有一个表格,它被分为若干页,我需要信息沿着它移动,这样它就可以在最后全部处理。但要做到这一点,我是否必须使用$\u会话在表单的每一页上设置它,就像使用$\u POST时一样?