PHP - 如何在多页表单中发送值

时间:2014-09-19 06:33:06

标签: php html forms

所以,我正在开发一个PHP应用程序中心(Form),而且我遇到了困难。

我有3页表格和1页总结页面。所有都在.php扩展名中。所以,我想从第一页开始<input name="name" type="text" placeholder="Name" required>并且:

<label>About yourself (Atleast 50 Words): <span>*</span></label><br /> <textarea name="yourself" placeholder="About yourself (Atleast 50 Words)" ></textarea>到提交页面。

我可以接受Textarea&amp;的价值观。第3页的文本框,通过<?php echo $_POST['somethinghere']?>提交页面。但我不能从第一页和第二页中获取值。

以下是带有style.css(pastebin.com)的php代码的链接: - http://pastebin.com/81vgHh5H

2 个答案:

答案 0 :(得分:0)

我看了一下Pastebin,我想我可以看到问题所在。您将会话数据设置在他们填写的同一页面上(因此您在填充之前将这些字段分配给会话)。您需要在第2页而不是第1页上执行此操作。因此,您的模式是:

  1. 显示第1页表格。
  2. 用户填写并点击提交。
  3. 将用户发送至第2页。
  4. 第2页抓取第1页发布的信息,将其存储在会话中。
  5. 第2页显示第二个表单页面。
  6. 用户填写第2页并点击提交。
  7. 将用户发送至第3页。
  8. 第3页抓取第2页发布的信息,将其存储在会话中。
  9. 等等......

    当您到达最后一页时,您的会话将包含表单中的所有信息,然后您可以根据需要进行处理。

    示例:

    第1页:

    <form action="page2.php">
        <input type="text" name="page1text"/>
        <input type="submit"/>
    </form>
    

    第2页:

    <?php
        $_SESSION['page1text'] = $_POST['page1text'];
    ?>
    <form action="page3.php">
        <input type="text" name="page2text"/>
        <input type="submit"/>
    </form>
    

    第3页:

    <?php
        $_SESSION['page2text'] = $_POST['page2text'];
    ?>
    <form action="page4.php">
        <input type="text" name="page3text"/>
        <input type="submit"/>
    </form>
    

    第4页:

    <?php
        $_SESSION['page3text'] = $_POST['page3text'];
    ?>
    <ul>
        <li>Page 1: <?php echo $_SESSION['page1text'] ?></li>
        <li>Page 2: <?php echo $_SESSION['page2text'] ?></li>
        <li>Page 3: <?php echo $_SESSION['page3text'] ?></li>
    </ul>
    

    如您所见,第4页最终可以访问前几页中的所有信息。

    编辑:此答案之前已阅读:我建议使用包含所有表单属性的模型。当他们填写每个页面时,使用用户输入的数据填充模型,然后当他们成功完成表单时,您可以销毁会话数据。

答案 1 :(得分:0)

您可以将它们存储在会话中,例如,将您的数据从第一页传递到第二页,在第二页中执行以下操作

$_SESSION['name'] = $_POST['name'];

再次,将您的数据从第2页传递到第3页,在第3页中执行以下操作

$_SESSION['yourself'] = $_POST['yourself'];

这将在会话中设置您的姓名和您自己的数据,并且可以从任何页面访问。如果该页面使用会话,请不要忘记在页面顶部包含session_start()。

现在,您可以从提交页面访问这些会话变量,例如

echo $_SESSION['name'];
echo $_SESSION['yourself'];