PHP - HTML形成两种可能的行为?

时间:2010-01-18 12:49:52

标签: php html forms

我正在创建一个注册页面,我想让用户有机会查看他们的信息并返回并编辑它,然后再单击确认按钮将其插入数据库。

有没有办法包含两个指向不同脚本的提交按钮,或者我是否必须复制整个表单但是使用隐藏字段?

任何建议表示赞赏。

感谢。

4 个答案:

答案 0 :(得分:10)

您可以使用两个名称不同的提交按钮:

<input type="submit" name="next" value="Next Step">
<input type="submit" name="prev" value="Previous Step">

然后检查已激活的提交按钮:

if (isset($_POST['next'])) {
    // next step
} else if (isset($_POST['prev'])) {
    // previous step
}

这可行,因为only the activated submit button is successful

  
      
  • 如果表单包含多个提交按钮,则只有激活的提交按钮成功。
  •   

答案 1 :(得分:3)

对于其他每个HTML input元素,您只需为它们指定一个名称和值对,以便它显示在$_GET$_POST中。这样您就可以根据按下的按钮进行条件检查。 E.g。

<form action="foo.php" method="post">
    <input type="text" name="input">
    <input type="submit" name="action" value="Add">
    <input type="submit" name="action" value="Edit">
</form>

$action = isset($_POST['action']) ? $_POST['action'] : null;
if ($action == 'Add') {
    // Add button was pressed.
} else if ($action == 'Edit') {
    // Edit button was pressed.
}

你甚至可以通过在数组中执行操作来抽象它。

答案 2 :(得分:0)

你可以

喜欢:

http://sureshk37.wordpress.com/2007/12/07/how-to-use-two-submit-button-in-one-html-form/

通过php

<!--    userpolicy.html      -->
<html>
<body>
<form action="process.php" method="POST">
    Name <input type="text" name="username">
    Password <input type="password" name="password">
    <!--  User policy goes here           -->

    <!--            two submit button            -->
    <input type="submit" name="agree" value="Agree">
    <input type="submit" name="disagree" value="Disagree">
</form>
</body>
</html>

/*         Process.php         */
<?php
if($_POST['agree'] == 'Agree') {
    $username = $_POST['username'];
    $password = $_POST['password'];
      /* Database connection goes  here */

}
else {
    header("Location:http://user/home.html");
}
?>

或通过javascript

答案 3 :(得分:0)

我当然不会重复这种形式,这是一种相当不言而喻的DRY违规行为。据推测,每次提交表单时都需要进行相同的数据检查,因此当用户点击“批准”按钮时,您可能只需要执行一个操作并且只运行“添加到数据库”部分。