Ir para conteúdo
Hugo Lima

Checkbox array - Ajuda ficar checked

Recommended Posts

Como aparecer checkbox checado de um array buscando de uma base de dados.

 

Já está cadastrando em um array no campo meses da base de dados da seguinte forma  ,Janeiro,Fevereiro,Junho,Dezembro,  - Esta OK o cadastro

 

Queria pegar estas variáveis/strings e mostrar apenas os meses contidos do campo como checados.

Exemplo: (Vai continuar me aparecendo todos os meses e aparecer aqueles que já foram escolhidos checados)

 

<?php
$mes = explode(',', $meses);
foreach ($mes as $chave => $valor){
	echo "{$chave}: {$valor} \n";
}
?>
													
<ul class="ks-cboxtags">
  	<li><input id="janeiro" name="meses[]" type="checkbox" value="Janeiro" <?php if (AQUI)) { ?> checked <?php }	?> ><label for="janeiro">Janeiro</label></li>
	<li><input id="fervereiro" name="meses[]" type="checkbox" value="Fevereiro"><label for="fervereiro">Fevereiro</label></li>
	<li><input id="marco" name="meses[]" type="checkbox" value="Março"><label for="marco">Março</label></li>
	<li><input id="abril" name="meses[]" type="checkbox" value="Abril"><label for="abril">Abril</label></li>												<li><input id="maio" name="meses[]" type="checkbox" value="Maio"><label for="maio">Maio</label></li>													<li><input id="junho" name="meses[]" type="checkbox" value="Junho"><label for="junho">Junho</label></li>
	<li><input id="julho" name="meses[]" type="checkbox" value="Julho"><label for="julho">Julho</label></li>
	<li><input id="agosto" name="meses[]" type="checkbox" value="Agosto"><label for="agosto">Agosto</label></li>
	<li><input id="setembro" name="meses[]" type="checkbox" value="Setembro"><label for="setembro">Setembro</label></li>
	<li><input id="outubro" name="meses[]" type="checkbox" value="Outubro"><label for="outubro">Outubro</label></li>
	<li><input id="novembro" name="meses[]" type="checkbox" value="Novembro"><label for="novembro">Novembro</label></li>
	<li><input id="dezembro" name="meses[]" type="checkbox" value="Dezembro"><label for="dezembro">Dezembro</label></li>								
</ul>

Está me retornando do array da variável  mes

0:

1: Janeiro

2: Fevereiro

3: Junho

4: Dezembro

5:

 

Como eu faria isso com o IF?

<li><input id="janeiro" name="meses[]" type="checkbox" value="Janeiro" <?php if (AQUI)) { ?> checked <?php }?> ><label for="janeiro">Janeiro</label></li>
...
...
...

Obrigado

Hugo Lima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa de alguma informação que indique qual mais foi checado

Meio parecido com isso:

<?php
$meses_no_banco_de_dados = [
    ['id' => 1, 'nome' => 'janeiro', 'checado' => 0],
    ['id' => 2, 'nome' => 'fevereiro', 'checado' => 1], // Vai aparecer como marcado
    ['id' => 3, 'nome' => 'março', 'checado' => 0],
    ['id' => 4, 'nome' => 'abril', 'checado' => 0],
    ['id' => 5, 'nome' => 'maio', 'checado' => 1], // Vai aparecer como marcado
    ['id' => 6, 'nome' => 'junho', 'checado' => 0],
];

foreach ($meses_no_banco_de_dados as $value) {
    ?>
    <input
        type="checkbox"
        name="meses[]"
        value="<?= $value['nome'] ?>"
        <?= ($value['checado'] == '1' ? 'checked=""' : null) ?> />
        <?= $value['nome'] ?>
    <?php
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no meu caso eu não estou pegando os valores dos meses de uma tabela da base de dados e sim só estou inserindo em um campo meses dentro de uma tabela (tb_disponibilidade) através dos campos input.

 

Não tem uma forma de fazer tipo assim pegando uma "variável/string" do valor do array?:

 

<?php if ($valor == "Janeiro"){ ?> checked <?php }?>

 

Dentro do input

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer buscando da base de dados, para que tiver interesse segue a baixo.

 

<div class="form-group">
  <label>Meses Disponíveis</label>
  <div class="form-controlcat" >
    <?php $sql_meses = "SELECT * FROM tb_meses ORDER BY id ";
	$query_meses = $DB->Select($sql_meses);
	if (count($query_meses) > 0) { ?>
    	<div class="row">
          <ul class="ks-cboxtags">
            <?php foreach($query_meses as $item_meses) { ?>	
              <?php if (in_array($item_meses['id'], $id_meses)) { ?>
              <li>
                <input   id="<?php echo $item_meses['id']; ?>" name="id_meses[]" type="checkbox" value="<?php echo $item_meses['id']; ?>" checked>
                <label for="<?php echo $item_meses['id']; ?>"><?php echo $item_meses['mes']; ?></label>
              </li>
              <?php } else { ?>
              <li>
                <input id="<?php echo $item_meses['id']; ?>" name="id_meses[]" type="checkbox" value="<?php echo $item_meses['id']; ?>">
                <label for="<?php echo $item_meses['id']; ?>" ><?php echo $item_meses['mes']; ?></label>
              </li>
              <?php } ?>
            <?php } ?>
          </ul>
      </div>
    </div>
    <?php } else { ?>
    <div class="row">
      <div class="col-sm-12">
        <h3>Não existem meses cadastrados.</h3>
      </div>
    </div>
  <?php } ?>
</div>	

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.