Como recuperar como checked um campo armazenado como array – PHP

Só dicas simples ultimamente né. Vamos lá:

Imagine que você tenha um formulário HTML com alguns campos checkbox, ou seja, que permitem múltiplos valores.

[php]

Marque o turno:
Matutino
Vespertino
Noturno

[/php]

No banco, você terá um campo que irá armazenar as opções selecionadas em formato de array separados por vírgula (1,2,3). A dúvida é, como que você irá recuperar os valores selecionados de forma que ao editar este formulário os respectivos campos checkbox’s venham marcados? Muito simples, basta utilizar as funções implode() e explode(), veja:

Para inserir em formato de array separados por vírgula basta dar um implode():

[php]$turno = implode($_POST[‘turno’],”,”);[/php]

Ai basta utilizar esta variável ($turno) no seu INSERT.

Na query que irá recuperar os dados, utilizamos explode() para separar os elementos do array:

[php]$turno = explode(“,”, $row[“turno”]);[/php]

E na hora de marcar os campos do formulário com os registros recuperados vamos utilizar a função do PHP chamada in_array, com um operador ternário:

[php]
/>Matutino
/>Vespertino
/>Noturno
[/php]

Pronto, dessa forma os valores que vierem da variável $turno que coincidirem com o value do checkbox será marcado como ativo.

Seguindo o mesmo princípio, você pode querer trazer em formato de relatório os valores selecionados, como no exemplo abaixo:

( X ) MATUTINO        (  ) VESPERTINO        ( X ) NOTURNO

É a mesma coisa, basta dar um echo na variável no espaço onde será preenchido o X:

[php]( < ?php echo (in_array('1',$turno))?('X'):('');?> ) MATUTINO ( < ?php echo (in_array('2',$turno))?('X'):('');?> ) VESPERTINO ( < ?php echo (in_array('3',$turno))?('X'):('');?> ) NOTURNO[/php]

Fonte: Handling checkbox in a PHP form processor

Leave a Reply

Your email address will not be published. Required fields are marked *