PHP – HTML форма двух возможных действий?

Я создаю страницу регистрации, и я хотел бы дать пользователю возможность просмотреть их информацию и вернуться и отредактировать ее, прежде чем нажать кнопку подтверждения, которая вставляет ее в базу данных.

Есть ли способ включить две кнопки отправки, которые указывают на разные сценарии, или мне придется дублировать всю форму, но вместо этого использовать скрытые поля?

Любые советы приветствуются.

Благодарю.

Solutions Collecting From Web of "PHP – HTML форма двух возможных действий?"

Вы можете использовать две кнопки отправки с разными именами:

<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 } 

Это работает, потому что только активированная кнопка отправки успешно завершена :

  • Если форма содержит более одной кнопки, только активированная кнопка отправки успешно завершена.

Что касается любого другого элемента input HTML, вы можете просто указать им пару имени и значения, чтобы он отображался в $_GET или $_POST . Таким образом, вы можете просто выполнить условную проверку в зависимости от нажатой кнопки. Например

 <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. } 

Вы можете даже отвлечь это больше, имея действия в массиве.

ты можешь

как :

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

Я, конечно, не стал бы повторять форму, это было бы довольно очевидным нарушением DRY. Предположительно, вам понадобятся те же проверки данных каждый раз, когда будет отправлена ​​форма, поэтому вы можете просто иметь одно действие и выполнять только часть «добавить в базу данных», когда пользователь нажимает кнопку «одобрить».