Podemos desejar usar mais de um botão (submit) dentro de formulário HTML e isso é bem vantajoso em situações em que desejamos oferecer opções diferentes para o usuário. Por exemplo, em um formulário de pesquisa, você pode ter um botão “Enviar” para enviar as respostas e outro botão “Limpar” para limpar o formulário.
Uma situação que necessitei foi criar dois botões, um “depositar” e o outro “retirar”; Esse caso torna interessante o uso de mais de um botão dentro de forms.
Nosso formulário de exemplo
Abaixo, temos dois botões com o mesmo nome “operacao”, mas com valores diferentes, um como “depositar” e outro como “retirar”
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Formulário com Botões</title> </head> <body> <form action="processar.php" method="post"> <input type="text" name="valor" required> <br> <button type="submit" name="operacao" value="depositar">Depositar</button> <button type="submit" name="operacao" value="retirar">Retirar</button> </form> </body> </html>
Exemplo de como pegar os valores usando PHP
Podeira usar qualquer outra linguagem, mas uso PHP pela facilidade de entendimento.
Em uma outra página ou na mesma, podemos usar as linhas PHP abaixo:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { // Verificar se o botão "Depositar" foi clicado if (isset($_POST['operacao']) && $_POST['operacao'] == 'depositar') { echo "Botão Depositar foi clicado. Valor: " . $_POST['valor']; } // Verificar se o botão "Retirar" foi clicado elseif (isset($_POST['operacao']) && $_POST['operacao'] == 'retirar') { echo "Botão Retirar foi clicado. Valor: " . $_POST['valor']; } else { echo "Nenhum botão foi clicado."; } } else { echo "Este script só processa requisições POST."; } ?>
No script PHP acima, verifico qual botão foi clicado com base no valor associado ao botão no array $_POST
.