6
respostas

PHP - Como transformar opções selecionadas do checkbox em um array para salvar em um banco de dados?!

Boa tarde, pessoal! Tudo tranquilo? Estou precisando de uma super ajuda.

Estou desenvolvendo um sistema no qual o usuário deverá selecionar alguns nomes de pessoas no formulário e salvar no banco de dados mysql para futuramente trazer esses dados de volta para poder imprimir em uma lista.

O meu problema é que eu preciso transformar essa seleção de nomes do checkbox em um array para, logo em seguida, poder salvar esses dados em no banco de dados em um único atributo da tabela. Não sei como resolver esse problema. ** Obs.: Tecnologia usada: PHP**

<form method="post" action="post.php">

<div class="form-check">
  <input class="form-check-input" type="checkbox" value="Welton"name="respostas" >
  <label class="form-check-label" for="flexCheckDefault">
    Welton
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="Sônia" name="respostas" >
  <label class="form-check-label" for="flexCheckChecked">
    Sônia
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="Egnaldo" name="respostas" id="flexCheckDefault">
  <label class="form-check-label" >
    Egnaldo
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="Sonyelton" name="respostas" id="flexCheckChecked" >
  <label class="form-check-label" for="flexCheckChecked">
    Sonyelton
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="Karine" name="respostas" id="flexCheckDefault">
  <label class="form-check-label" for="flexCheckDefault">
    Karine
  </label>
</div>
<div class="form-check">
  <input class="form-check-input" type="checkbox" value="Marina" name="respostas" id="flexCheckChecked" >
  <label class="form-check-label" for="flexCheckChecked">
    Marina
  </label>
</div>


<input type="submit" value="ENVIAR">

</form>

Desde já, super agradeço que se dipor a me ajudar. <3

6 respostas

Você cria um array, passa cada valor capturado do checkbox pra ele como elemento e depois, transforma esse array em uma string e salva no banco de dados, creio que seja uma possibilidade.

Mas dessa forma quando você capturar esse dado no banco de dados, você vai ter que separar essa string, ou seja vai ter que converter a string em array novamente. Da uma olhada nas funções explode() e implode()

Certo, mas em código-fonte como funcionaria essa criação do array capturado do checkbox?

Tem que mandar apenas os nomes que forem selecionados?

Isso, Anderson, apenas os nomes que forem selecionados. Eu só queria gerar um array de acorco com os checkbox's selecionados e salvar no banco de dados.

O "caminho reverso" usando as funções explode() e implode() eu conseguido de boa. A minha dificuldade está no fato de gerar um array com essas nomes selecionados do checkbox.

há sim, creio que assim funcione. Você adicionou o mesmo name em todos os checkbox, faz assim, coloca [] junto do name em todos eles, tipo assim, name="resposta[]".

ai no arquivo post.php, você faz assim.

#isso aqui gera um array com todos os checkbox que tiverem o name resposta[]
#ai ele vai criar um array apenas com os selecioandos
$respostas = $_POST['respostas'];