如何在单个PHP文件中使用不同的表单


How to use different forms in single PHP file?

我正在尝试创建一个具有两个单独表单的动态网页:

  1. 登录表单
  2. 登记表

这意味着每个表单都有一个提交按钮,点击一个提交键应该只从一个表单收集数据。我尝试了下面显示的方法,但数据没有提交到mySql数据库。我试过单独运行这些表单,它们确实与mysql数据库一起工作,所以我想应该还有其他问题。下面的代码去掉了细节,但我认为它的要点在里面。提前感谢!

<?php
if(isset($_POST['submit1']))
{ 
doSomething(); 
} 
?>
<form id="form1" name="form1" action="" method="post">
...
<input type="submit" name="submit1" value="Sign in"/>
</form>

<?php
if(isset($_POST['submit2']))
{ 
doSomethngElse(); 
}
?>
<form id="form2" name="form2" action="" method="post">
...
<input type="submit" name="submit2" value="Sign up"/>
</form>

所以我喜欢这个:

使用2个按钮和1个名称:

    //========== first form ==========
    <form name="form1" action....>
    fields
    <input type="submit" name="_Submit" value="Login">
    </form>
    // ========== second form ==========
    <form name="form2" action....>
    fields
    <input type="submit" name="_Submit" value="Sign up">
    </form>

    // ========== in php file do this  ==========
    <?php
    $submit = $_POST["_Submit"];
    if($submit=="Login"){
       // get login form data

    }else if($submit=="Sign up"){
       // get sign up form data
    }else{
      // submit is empty or undefined value
    }
    ?>
  • 我在一页中使用了超过16个表单!这是使用if或switch控制表单按钮的非常简单的方法

尝试首先检查请求后的

<?php
if($_POST)
{
   echo "post occurs";              // only for testing to check whether post is occur or not
  if(isset($_POST['submit1']))
  { 
      doSomething(); 
  } 
  else if(isset($_POST['submit2']))
  { 
     doSomethngElse(); 
  }
  else
  {
        echo "no form is posted";
  }
 }
 else
 {
      echo "Post not happened";
  }
?>

<form id="form1" name="form1" action="" method="post">
...
<input type="submit" name="submit1" value="Sign in"/>
</form>

<form id="form2" name="form2" action="" method="post">
...
<input type="submit" name="submit2" value="Sign up"/>
</form>

这并不是直接回答您的问题,我认为需要您的其余代码。。。但是

为什么不只检查像这样的单个表单元素中的值:

<?php
if(isset($_POST['submit1']))
{ 
    if(!empty($_POST['submit1']) && $_POST['submit1']=='SignIn')
    {
        // Do Some Code... like:
        ?>
        <form id="form1" name="form1" action="" method="post">
        ...
        <input type="submit" name="submit1" value="SignIn"/>
        </form>
        <?php
    }
    if(!empty($_POST['submit1']) && $_POST['submit1']=='SignUp')
    {
        // Do Some Other Code...
        ?>
        <form id="form2" name="form2" action="" method="post">
        ...
        <input type="submit" name="submit1" value="SignUp"/>
        </form>
        <?php
    }
} 
?>

就像我说的,你可以检查值是否为空,这样你就可以进行

if(isset($_POST['submit2']) == ""){
     //The variable is empty
}
else
{
   //The variable is not empty
}

如果我纠正了,你就可以做

 if (!(empty($_POST['submit2'])){
         //This variable is not empty    
    }