Como enviar valores de RadioButtons em PHP

Os RadioButtons são amplamente utilizados em formulários HTML quando você deseja que o usuário selecione apenas uma opção de várias disponíveis. No PHP, capturar o valor escolhido por meio de um RadioButton é bastante simples usando o método POST. Neste post, vou te mostrar como enviar valores de RadioButtons em PHP.

Criando o formulário HTML com RadioButtons

O primeiro passo é criar o formulário com opções de RadioButtons. Aqui está um exemplo básico de um formulário que pergunta a preferência de cor de um usuário:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Seleção de Cor</title>
</head>
<body>
    <h2>Qual é sua cor favorita?</h2>
    <form action="processa_radio.php" method="POST">
        <input type="radio" id="vermelho" name="cor" value="vermelho" required>
        <label for="vermelho">Vermelho</label><br>

        <input type="radio" id="azul" name="cor" value="azul">
        <label for="azul">Azul</label><br>

        <input type="radio" id="verde" name="cor" value="verde">
        <label for="verde">Verde</label><br>

        <input type="radio" id="amarelo" name="cor" value="amarelo">
        <label for="amarelo">Amarelo</label><br><br>

        <input type="submit" value="Enviar">
    </form>
</body>
</html>

Explicação do formulário:

  1. <input type="radio">: Define um RadioButton. O valor atribuído ao atributo value será o valor enviado ao servidor quando o botão for selecionado.

  2. name="cor": Todos os RadioButtons relacionados compartilham o mesmo atributo name. Isso garante que apenas uma opção seja selecionada e enviada ao servidor.

  3. required: Garante que o usuário selecione uma das opções antes de enviar o formulário.

Processando o valor do RadioButton com PHP

Agora, vamos criar o arquivo processa_radio.php para capturar e processar o valor selecionado pelo usuário.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Verifica se a opção 'cor' foi enviada
    if (isset($_POST['cor'])) {
        // Coleta o valor do RadioButton
        $corEscolhida = htmlspecialchars($_POST['cor']);

        // Exibe a cor escolhida
        echo "<h2>Você escolheu a cor: $corEscolhida</h2>";
    } else {
        echo "<h2>Nenhuma cor foi selecionada.</h2>";
    }
} else {
    echo "Método de requisição inválido.";
}
?>

Explicação do código PHP:

  1. $_SERVER["REQUEST_METHOD"]: Verifica se o formulário foi enviado via POST.

  2. isset($_POST['cor']): Checa se o valor de cor foi definido, ou seja, se o usuário selecionou uma das opções.

  3. htmlspecialchars($_POST['cor']): Captura o valor da opção selecionada e aplica a função htmlspecialchars() para evitar ataques XSS.

  4. Exibe a cor escolhida: Após a seleção, o valor escolhido pelo usuário é exibido.

Exemplo de saída:

Se o usuário selecionar a cor “Azul” e clicar em “Enviar”, o navegador exibirá algo assim:

Você escolheu a cor: azul

Tratando erros de seleção

Se o RadioButton for obrigatório (como no exemplo), mas o usuário tentar enviar o formulário sem selecionar uma opção, o navegador impedirá o envio do formulário por conta do atributo required.

No entanto, caso o RadioButton não seja obrigatório, você pode incluir uma lógica no PHP para lidar com o caso em que nenhuma opção foi selecionada, como já mostrado com o isset().

Aplicações comuns de RadioButtons:

  1. Gênero: Masculino, Feminino, Outro

  2. Forma de Pagamento: Cartão de Crédito, Boleto, PayPal

  3. Classificações: Ótimo, Bom, Regular, Ruim

  4. Respostas de Múltipla Escolha: A, B, C, D

Exemplo completo: Capturando mais dados

Caso você queira capturar mais informações junto com a seleção de RadioButtons, o processo é o mesmo. Aqui está um exemplo mais completo que inclui um campo de texto junto com a seleção da cor:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulário Completo</title>
</head>
<body>
    <h2>Seleção de Preferências</h2>
    <form action="processa_radio_completo.php" method="POST">
        <label for="nome">Nome:</label>
        <input type="text" id="nome" name="nome" required><br><br>

        <h3>Qual é sua cor favorita?</h3>
        <input type="radio" id="vermelho" name="cor" value="vermelho" required>
        <label for="vermelho">Vermelho</label><br>

        <input type="radio" id="azul" name="cor" value="azul">
        <label for="azul">Azul</label><br>

        <input type="radio" id="verde" name="cor" value="verde">
        <label for="verde">Verde</label><br>

        <input type="radio" id="amarelo" name="cor" value="amarelo">
        <label for="amarelo">Amarelo</label><br><br>

        <input type="submit" value="Enviar">
    </form>
</body>
</html>

E o código PHP para processar esse formulário ficaria assim:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nome = htmlspecialchars($_POST['nome']);
    
    if (isset($_POST['cor'])) {
        $corEscolhida = htmlspecialchars($_POST['cor']);
        echo "<h2>Olá, $nome! Você escolheu a cor: $corEscolhida</h2>";
    } else {
        echo "<h2>Olá, $nome! Nenhuma cor foi selecionada.</h2>";
    }
} else {
    echo "Método de requisição inválido.";
}
?>

Enviar e capturar o valor de RadioButtons em PHP é uma tarefa fácil e muito útil para diversos tipos de formulários. Ao usar o método POST, os dados são transmitidos de forma segura e eficiente. Certifique-se de tratar adequadamente os dados recebidos para evitar problemas de segurança e exibir as informações de maneira clara para o usuário.

QUER APRENDER PHP ORIENTADO A OBJETOS OU APERFEIÇOAR O QUE JÁ SABE?

Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre como enviar valores de RadioButtons em PHP? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *