我正在创建一个注册页面,我想让用户有机会查看他们的信息并返回并编辑它,然后再单击确认按钮将其插入数据库。
有没有办法包含两个指向不同脚本的提交按钮,或者我是否必须复制整个表单但是使用隐藏字段?
任何建议表示赞赏。
感谢。
答案 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违规行为。据推测,每次提交表单时都需要进行相同的数据检查,因此当用户点击“批准”按钮时,您可能只需要执行一个操作并且只运行“添加到数据库”部分。