Кнопка многократной отправки в форме - PullRequest
3 голосов
/ 22 августа 2010

Эй, я очень новичок в веб-программировании.Я изучал PHP в последние несколько дней и застрял в одном.

В моем коде есть тег формы, в котором есть две кнопки отправки для манипулирования данными.Поскольку у меня может быть только одно определение действия для моего тега формы, оно может привести меня только к одной странице.(Не очень уверен)

Теперь в зависимости от нажатия кнопки на форме, я хочу загрузить другую страницу.Один из способов - проверить нажатие кнопки в конструкции if-else, а затем использовать echo '...' в ветвях и показать, как будто это другая страница.Но это не кажется правильным по какой-то причине.Кто-нибудь может дать мне лучшее решение?Спасибо.

Ответы [ 4 ]

2 голосов
/ 22 августа 2010

Одним из способов является использование Javascript для переключения действия формы в зависимости от того, какой элемент управления был нажат В следующем примере используется библиотека jQuery:

<form id="theForm" action="foo.php">
...
    <input id="first" type="submit"/>
    <input id="second" type="submit"/>
</form>​

$(document).ready(function() {
    $("#theForm input").click(function(e) {
        e.preventDefault();
        if(e.target.id == 'first') {
            $("#theForm").attr("action", "somePage.php");
        } else {
            $("#theForm").attr("action", "anotherPage.php");
        }
        alert($("#theForm").attr("action"));
        $("#theForm").submit(); 
    });
​});​

Демо здесь: http://jsfiddle.net/CMEqC/2/

1 голос
/ 22 августа 2010

Но почему-то это не так.

Это неверное предположение.
Любое другое решение было бы намного хуже.

Проверка на стороне сервера - единственное надежное решение.
Однако echo в филиалах не требуется. Есть много других способов.
Для использования include оператор является наиболее очевидным.

0 голосов
/ 22 августа 2010

просто как ссылка ... int HTML5 кнопки могут переопределить действие формы, метод, тип и т. Д. http://w3schools.com/html5/tag_button.asp для меня, это хороший способ управления формой:)

0 голосов
/ 22 августа 2010

, чтобы добавить другое решение на основе @ karim79, так как оно помечено PHP:

<form id="theForm" action="foo.php">
...
    <input id="first" name="button" value="first" type="submit"/>
    <input id="second" name="button" value="second" type="submit"/>
</form>​

в вашем foo.php, сделайте что-то вроде этого:

<?php
$submit = isset($_GET['button']) ? trim($_GET['button']) : '';

if($submit == 'first')
{
   header('Location: somePage.php');
}
else if($submit == 'second')
{
   header('Location: anotherPage.php');
}
?>

Резюме: чтобычтобы иметь возможность читать по вашей кнопке (2 кнопки отправки), вам нужно добавить name на каждую.Чтобы сделать это просто, просто используйте одно и то же имя на обоих.Затем добавьте разные value.Затем вам нужно , чтобы узнать, какая кнопка нажимается, проверив, какое значение отправлено на эту конкретную кнопку .

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