2014-05-24 82 views
0

所以我想要做的是,在加载时显示一个表单,询问用户的详细信息,如名称等,然后一旦用户单击提交,我希望将这些信息传递给下一个表单,我知道我必须为此隐藏字段。在同一页上有两个表单,但是在第一个提交后只加载第二个

我希望在点击提交后显示另一个表单,这一切都必须使用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> 

回答

0

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

有一个很好的form plugin,让您asynchroniously发送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> 
0

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

if (isset($_POST['submit']) && empty($errors)) { 
    // Output second form 
} else { 
    // Output first form 
} 

那么你或者发送第一组数据到数据库中,也可以将其添加为第二种形式隐藏字段。

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

相关问题