【问题标题】:Pass Values Between Two Forms在两种形式之间传递值
【发布时间】:2010-07-29 10:58:36
【问题描述】:

有没有办法在两种形式之间传递值。比方说,我有两个 html 表单。

在表格 1 中,有一个名为 name 和 submit button 的字段。

在表单 2 中,有两个字段,分别称为名称和电子邮件以及提交按钮。

我想要得到的是,在表格 1 中,当我填写表格 1 的名称字段并单击提交时,它会将我带到表格 2,并且我填写的名称值将插入表格 2 的名称字段。

有可能这样做吗?

如果是这样,请留下idea或sn-ps给我。

谢谢。

【问题讨论】:

    标签: php javascript html forms


    【解决方案1】:

    如果表单位于单独的页面中,您可以使用 $_POST 数组在表单二中填充值:

    第 1 页

    <form action="page2.php" method="post">
    name <input type="text" name="name" /><br/>
    email <input type="email" name="email" />
    <input type="submit" value="submit"/>
    </form>
    

    page2.php,获取来自 $_POST 的值并使用这些值填充表单:

    <?php
        $name = $_POST['name'];
        $email = $_POST['email'];
    ?>
    <form action="pageX.php" method="post">
    name <input type="text" name="name" value="<?php echo $name;?>"/><br/>
    email <input type="email" name="email" value="<?php echo $email;?>"/>
    <input type="submit" value="submit"/>
    </form>
    

    显然您需要在 page2.php 中验证 $_POST 数据,但这是另一个问题...

    【讨论】:

    • 感谢您的快速响应。我现在就试试。谢谢。
    【解决方案2】:

    没有验证代码,可能缺少一些检查,但是您可以在一个页面中使用两个功能完成所有操作,例如:

    function renderForm1($name $error)
    {
       <?PHP
       if ($error != '')
       {
          echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
       }
       ?>
      <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
          name <input type="text" name="name" /><br/>
          <input type="submit" value="getname"/>
      </form>
    }
    
    function renderForm2($name, $email, $error)
    {
       <?PHP
       if ($error != '')
       {
          echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
       }
       ?>
      <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
         name <input type="text" name="name" /><br/>
         email <input type="email" name="email" />
         <input type="submit" value="submit"/>
      </form>
    }
    
    if (isset($_POST['getname']))
    {
      if(empty($_POST['name'])
      {
        $error='bla bla';
        renderForm1($name $error)
      }
      else
      {
        $name=$_POST['name'];
        renderForm2($name, $email, $error)
      }
    }
    elseif (isset($_POST['submit']))
    {
      do whathever with fomr2
    }
    else
    {
      renderForm1($name $error);
    }
    

    【讨论】:

    • 好的,我是 stackoverflow 的新手,刚刚回答了 2010 年的帖子! :) 新手!
    猜你喜欢
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2020-04-11
    • 2015-06-23
    相关资源
    最近更新 更多