PHP: Inserindo valores selecionados de checkboxes

Post criado em resposta a um comentário deixado aqui no blog.

<form name="form1" action="#" method="post">
<strong>Produtos</strong>
<br />
<strong>Codigo</strong> 1 - <strong>Descrição</strong>: Descrição 1 - <strong>Ativo</strong> <input type='checkbox' name="ativo[]" value="1" />
<br />
<strong>Codigo</strong> 2 - <strong>Descrição</strong>: Descrição 2 - <strong>Ativo</strong> <input type='checkbox' name="ativo[]" value="2" />
<br />
<strong>Codigo</strong> 3 - <strong>Descrição</strong>: Descrição 3 - <strong>Ativo</strong> <input type='checkbox' name="ativo[]" value="3" />
<br />
<strong>Codigo</strong> 4 - <strong>Descrição</strong>: Descrição 4 - <strong>Ativo</strong> <input type='checkbox' name="ativo[]" value="4" />
<br /><br />
<input type="submit" name="btn" value="ENVIAR">
</form>
<p><strong>Valores selecionados</strong>:</p>
<?php
if ($_POST && isset($_POST['ativo'])){
  $ativo = $_POST['ativo'];
 
  foreach($ativo as $valor){
    $sql = "INSERT INTO tabela(campo) VALUES ('".$valor."')";
    echo $sql."<br />";
  }
}		
?>

8 comentários em “PHP: Inserindo valores selecionados de checkboxes

  • 11 de novembro de 2015 em 0:34
    Permalink

    Esse código não funciona, ele mostra o codigo php ao clicar no botao, por exemplo se eu clico no primeiro botao ele mostra:
    INSERT INTO tabela(campo) VALUES (‘1’)

    Resposta
    • 12 de novembro de 2015 em 21:01
      Permalink

      Olá Jeison.

      O código não está errado não.

      Eu estou apenas mostrando como ficaria o insert no banco de dados.

      Para que o insert funcione, você deve mudar esta linha

      echo $sql."<br />";

      para algo desse tipo

      mysql_query($sql);
      Resposta
  • 3 de dezembro de 2015 em 17:59
    Permalink

    Ele aparece a linha que selecionei
    INSERT INTO tabela(campo) VALUES (‘1’)
    e queria que ele fizesse a inserção no banco

    Resposta
    • 10 de dezembro de 2015 em 8:38
      Permalink

      Para gravar no banco de dados, basta fazer uma mudança simples.

      Dentro da instrução foreach, você tem esse código:

      $sql = "INSERT INTO tabela(campo) VALUES ('".$valor."')";
      echo $sql."<br />";

      deixe assim…

      $sql = "INSERT INTO tabela(campo) VALUES ('".$valor."')";
      mysql_query($sql);
      Resposta
  • 23 de maio de 2017 em 22:07
    Permalink

    Como gravar todas as opções escolhidas nos checkboxes e gravar em apenas um unico campo?

    Resposta
    • 7 de junho de 2017 em 11:16
      Permalink

      Olá Rayan,

      você pode usar o implode:

      <?php
      if ($_POST && isset($_POST['ativo'])){
        $ativo = implode(",", $_POST['ativo']);
       
        $sql = "INSERT INTO tabela(campo) VALUES ('".$ativo."')";
        echo $sql."<br />";
      }		
      ?>
      Resposta
  • 19 de setembro de 2017 em 20:39
    Permalink

    Como ficaria a inserção no banco, usando PDO????

    Resposta
    • 20 de setembro de 2017 em 9:34
      Permalink

      Olá Reni.

      Ficaria assim:

      $sql = "INSERT INTO tabela(campo) VALUES ('".$valor."')";
      $conn = new PDO('mysql:host=NOME_SERVIDOR;dbname=NOME_BANCO', 'USUARIO', 'SENHA');
      $conn->query($sql);
      Resposta

Deixe uma resposta

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