Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于先前输入的表格_Php_Html_Sql_Forms - Fatal编程技术网

Php 基于先前输入的表格

Php 基于先前输入的表格,php,html,sql,forms,Php,Html,Sql,Forms,我刚接触PHP,有一个问题我似乎找不到答案 我必须创建一个跨多个页面的事件创建表单。在一个页面上有一个表格,垂直方向上有一个票证类型,只列出上一页上选择的票证类型,水平方向上有一个基于上一页的“sections”列。然后,该表将允许用户输入价格,然后根据不同的部分分配给票证类型 我的问题是,单独使用html/PHP是否可以做到这一点?我正在使用POST方法在表单的页面之间移动,然后在最后将其全部添加到数据库中,但我是否应该使用其他方法来实现这一点 我希望这个问题有道理,但我的立场不是行话。有几种

我刚接触PHP,有一个问题我似乎找不到答案

我必须创建一个跨多个页面的事件创建表单。在一个页面上有一个表格,垂直方向上有一个票证类型,只列出上一页上选择的票证类型,水平方向上有一个基于上一页的“sections”列。然后,该表将允许用户输入价格,然后根据不同的部分分配给票证类型

我的问题是,单独使用html/PHP是否可以做到这一点?我正在使用POST方法在表单的页面之间移动,然后在最后将其全部添加到数据库中,但我是否应该使用其他方法来实现这一点


我希望这个问题有道理,但我的立场不是行话。

有几种方法可以采取:

  • 使用您描述的POST方法
  • 使用会话变量跨页面存储数据
  • 使用jQuery/javascript在一个页面上隐藏/显示不同的表单(无需在会话中多次发布或存储数据)

  • 您可以做的(不一定应该,这是您自己的判断)是将所有
    POST
    ed数据保存为会话变量。这可以帮助您清理代码混乱,否则您必须将所有表单中的所有数据发布到所有表单中,以便通过所有页面导航维护信息。

    只要第一个页面具有带有POST的表单方法,就可以完成此操作。 以下是步骤:

  • 在第一页,用户将通过POST方法提交数据
  • 在第二页,将数据保存在一个临时变量中:$temp_var=$\u POST['data']
  • 使用基于第一个页面的数据创建第二个页面
  • (提交时)将新数据与旧数据一起保存到数据库中

  • 这听起来是一个很好的例子

    在第一页上,您的表单可以随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'];
    
  • 用户填写第一张表格
  • 使用数据将请求发布到web服务器
  • PHP脚本解释数据并在页面上创建新视图或重定向到另一个页面
  • 在您使用的每个页面顶部的PHP脚本中:

    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']将完全正常工作。如果您想访问当前未发布到的其他页面上的值,将该值存储在会话中是一个很大的好处。我认为这一点让我感到困惑。因为我有一个表格,它被分为若干页,我需要信息沿着它移动,这样它就可以在最后全部处理。但要做到这一点,我是否必须使用$\u会话在表单的每一页上设置它,就像使用$\u POST时一样?