在同一个php页面上有多个表单

时间:2016-04-27 23:53:26

标签: php html forms

我想创建一个php页面

  1. 最初,有两个文本框和一个名为的提交按钮 提交
  2. 点击提交按钮,会显示一个包含的表格 复选框和名为submit2
  3. 的提交按钮
  4. 选中几个复选框,然后单击调用的提交按钮 submit2,我想获得所有已选中的复选框。
  5. 这是我对上述的尝试。步骤1和2工作正常,但是,我无法继续执行第3步。

    PS:我要求所有三个步骤都在同一页面上,每次有新的提交按钮时都不跳页。另外,我使用的是GET而不是POST。

    <html>
    <body>
    
    <form action="self.php" method="get">
        Name: <input type="text" name="name"><br>
        E-mail: <input type="text" name="email"><br>
        <input type="submit" name="submit">
    </form>
    
    </body>
    </html>
    
    <?php
    
    if(isset($_GET['name']))
    {
        $array1 = array(1, 2, 3, 4, 5);
        $a=count($array1);
        echo "<table width=100% border=1 cellspacing=0 cellpadding=0><tr><th>Array1</th><th>Array2</th><th>Checkboxes</th></tr>";
    
        for($i=0;$i<$a;$i++)
        {
            echo "<tr><td>".$array1[$i]."</td>";
            echo "<td>".$array1[$i]."</td>";
            echo '<td><input type="checkbox" name="checkbox[]" value="" id="checkbox"></td>';
            echo '</tr>';
        }
    
        echo "</table>";
    
        echo '<input type="submit" name="submit2">';
    }
    
    if(isset($_GET['submit2']))
    {
        echo "pressed the second submit button";
    }
    ?>
    

1 个答案:

答案 0 :(得分:1)

将php代码包装到<form>标签中,如

echo '<form action="self.php" method="get">';
if(isset($_GET['name']))
{
    $array1 = array(1, 2, 3, 4, 5);
    $a=count($array1);
    echo "<table width=100% border=1 cellspacing=0 cellpadding=0><tr><th>Array1</th><th>Array2</th><th>Checkboxes</th></tr>";

    for($i=0;$i<$a;$i++)
    {
        echo "<tr><td>".$array1[$i]."</td>";
        echo "<td>".$array1[$i]."</td>";
        echo '<td><input type="checkbox" name="checkbox[]" value="" id="checkbox"></td>';
        echo '</tr>';
    }

    echo "</table>";

    echo '<input type="submit" name="submit2">';
}
echo '</form>';

此外,如果您需要将nameemail变量从步骤1传递到第3步,请添加

echo "<input type='hidden' name='name' value='{$_GET['name']}'>";
echo "<input type='hidden' name='email' value='{$_GET['email']}'>";

if(isset($_GET['name']))