Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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_Postback - Fatal编程技术网

Php 在同一页上有两个表单,但仅在提交第一个表单后加载第二个表单

Php 在同一页上有两个表单,但仅在提交第一个表单后加载第二个表单,php,html,postback,Php,Html,Postback,所以我想做的是,在加载时显示一个表单,它要求用户提供他们的详细信息,如姓名等,然后一旦用户单击提交,我想将这些信息传递到下一个表单,我知道我必须隐藏这些字段 我希望在他们单击submit后显示另一个表单,这一切都必须使用POSTBACK完成,因此在一个php页面上有两个表单,但在第一个表单提交后只显示第二个表单 我知道我可以通过创建两个不同的php文件和使用头文件来实现这一点,但我想学习如何通过回发来实现这一点 <form name="firstform" method="post" a

所以我想做的是,在加载时显示一个表单,它要求用户提供他们的详细信息,如姓名等,然后一旦用户单击提交,我想将这些信息传递到下一个表单,我知道我必须隐藏这些字段

我希望在他们单击submit后显示另一个表单,这一切都必须使用POSTBACK完成,因此在一个php页面上有两个表单,但在第一个表单提交后只显示第二个表单

我知道我可以通过创建两个不同的php文件和使用头文件来实现这一点,但我想学习如何通过回发来实现这一点

 <form name="firstform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?> "       onSubmit="return validator();">
 <p>Please fill in the following form</p>
 <p>Given Name*  <input type="text" name="fname" id="fname"/><br/>
     Middle Name <input type="text" name="mname"/><br />
     Family Name* <input type="text" name="lname" id="lname"/><br />
     Chosen Username* <input type="text" name="uname"/>
  </p>
  <p><input type="submit" value="submit" id="submit"/>&nbsp;
  </form>

  <form name="secondform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?> " >
    Test* <input type = "text" name="test"/>
  </form>

如果这只是一个快速表单,您可以使用jquery和Javascript

有一个nice允许您异步发送HTML表单

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
    $(document).ready(function() {

        // Hide all forms
        $('form').hide();

        // Show the first form
        $('form').eq(0).show();

        $('form').eq(0).on('submit', function() {
            // Submit via ajax




            // Unhide second form
            $(this).hide();
            $('form').eq(1).show();

            return false;

        });

    });
</script>

$(文档).ready(函数(){
//隐藏所有形式
$('form').hide();
//显示第一个表单
$('form').eq(0.show();
$('form').eq(0).on('submit',function(){
//通过ajax提交
//取消隐藏第二个表单
$(this.hide();
$('form').eq(1).show();
返回false;
});
});

我将验证第一个表单数据是否正确,然后测试表单是否已提交且没有错误

if (isset($_POST['submit']) && empty($errors)) {
    // Output second form
} else { 
    // Output first form
}
您可以将第一组数据发送到数据库,也可以将它们作为隐藏字段添加到第二个表单中

这是假设您将任何生成的错误放入名为$errors的数组中