PHP - HTML форма двух возможных действий? - PullRequest
3 голосов
/ 18 января 2010

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

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

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

Спасибо.

Ответы [ 4 ]

10 голосов
/ 18 января 2010

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

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

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

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

Как и для любого другого элемента HTML input, вы можете просто дать им пару имя и значение, чтобы оно появилось в $_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.
}

Вы можете даже абстрагироваться от этого, имея действия в массиве.

0 голосов
/ 18 января 2010

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

0 голосов
/ 18 января 2010

вы можете

нравится:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...