Jump to content
Sapinn

Como trazer checkbox marcados???

Recommended Posts

Como faço para trazer checkbox marcados com os dados do banco eu consigo enviar e cadastrar dados de checkbox marcados em uma tabela  SQL mas não sei como trazer os checkbox marcadas em uma listagem de PHP procedural.

Share this post


Link to post
Share on other sites
<span>Select languages</span><br/>
<input type="checkbox" name='lang[]' value="PHP"> PHP <br/>
<input type="checkbox" name='lang[]' value="JavaScript"> JavaScript <br/>
<input type="checkbox" name='lang[]' value="jQuery"> jQuery <br/>
<input type="checkbox" name='lang[]' value="Angular JS"> Angular JS <br/>
if(isset($_POST['submit'])){

	$valor = "";

    if(!empty($_POST['lang'])) {    
        foreach($_POST['lang'] as $value){
            $valor .= $value.',';
        }
    }

	echo $valor;

}

 

Share this post


Link to post
Share on other sites

Sapinn,

faz o seguinte, você faz a query e traz os dados, faz um if dentro da inpout do checkbox para verificar se o valor que veio do banco é o mesmo que esta dentro da tag value, caso seja você da um echo na opção checked.

tipo assim:

<?php
$query = "faça a query a tragas os dados para pupular o formulario";
//use o metodo de query PDO ou MySqli e ponha e uma variavel o resultado

$chbox = "valor que veio do BD";
?>

<span>Selecione uma opção</span><br/>
<input type="checkbox" name='chbox' value="1" <?php if($chbox == 1){ echo "checked"; } ?> > Opção 1 <br/>
<input type="checkbox" name='chbox[]' value="2" <?php if($chbox == 2){ echo "checked"; } ?>> Opção 2 <br/>
<input type="checkbox" name='chbox' value="3" <?php if($chbox == 3){ echo "checked"; } ?>> Opção 3 <br/>
<input type="checkbox" name='chbox' value="4" <?php if($chbox == 4){ echo "checked"; } ?>> Opção 4 <br/>

Mais ou mnenos isso ai, lembrando que nao é regra absoluta, apenas uma forma de fazer o que você quer.

Share this post


Link to post
Share on other sites
13 minutos atrás, icarof disse:

Sapinn,

faz o seguinte, você faz a query e traz os dados, faz um if dentro da inpout do checkbox para verificar se o valor que veio do banco é o mesmo que esta dentro da tag value, caso seja você da um echo na opção checked.

tipo assim:


<?php
$query = "faça a query a tragas os dados para pupular o formulario";
//use o metodo de query PDO ou MySqli e ponha e uma variavel o resultado

$chbox = "valor que veio do BD";
?>

<span>Selecione uma opção</span><br/>
<input type="checkbox" name='chbox' value="1" <?php if($chbox == 1){ echo "checked"; } ?> > Opção 1 <br/>
<input type="checkbox" name='chbox[]' value="2" <?php if($chbox == 2){ echo "checked"; } ?>> Opção 2 <br/>
<input type="checkbox" name='chbox' value="3" <?php if($chbox == 3){ echo "checked"; } ?>> Opção 3 <br/>
<input type="checkbox" name='chbox' value="4" <?php if($chbox == 4){ echo "checked"; } ?>> Opção 4 <br/>

Mais ou mnenos isso ai, lembrando que nao é regra absoluta, apenas uma forma de fazer o que você quer.

 

Se forma de resolução do problema é interessante e viável. Queria aproveitar o gancho para perguntar como eu faria para por exemplo alterar os checkbox que foram marcados no banco?

Share this post


Link to post
Share on other sites

No caso, o formulario que vai receber esses dados fica dentro de uma form, e você envia as alterações nomalmente em de insert você vai usar um update na action, a tag checked é so pra avisar que o fomulario precisa exibir esse input marcado.

 

lembrando que nesse exemplo ai que te mandei ele vai mandar esses check como uma array, você precisa fazer o foreach na sair pra gravar.

Share this post


Link to post
Share on other sites

Certo isso funcionaria também se eu usa-se por exemplo assim:

 

<?php
 $result = mysqli_query($conn,"select * from turma where codigo_professor = '".$professor['id']."'");
 while($pegaTurma = mysqli_fetch_assoc($result)) {
?>
    
       <input type="checkbox" name="marcados[]" value="<?php echo $pegaTurma['id']?>"> <?php echo $pegaTurma['nome_turma']?> - <?php echo $pegaTurma['escola_turma']?><br>
  <?php
 } 
  ?>

 

Share this post


Link to post
Share on other sites

sim funciona tbm lembre de realizar o If pra validar se vai vir checado ou não

 

Dica, tente usar sempre a mesma tag php

<input type="checkbox" name="marcados[]" value="<?php echo $pegaTurma['id']?>"> <?php echo $pegaTurma['nome_turma']?> - <?php echo $pegaTurma['escola_turma']?><br>

tnte assim:

<input type="checkbox" name="marcados[]" value="<?= $pegaTurma['id']?>"> <?php echo $pegaTurma['nome_turma']."-".$pegaTurma['escola_turma']; ?><br>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Camilavip
      Oi, como consigo fazer uma página de erro ou redirecionamento ou aviso, caso alguém clique em um cadastro que já não existe ou não tenha?
      localhost/clientes/12/ricardo No exemplo acima eu clico no cliente com esse id 12 e abre os dados dele, mas se eu o excluir mas estiver com o link e colocar no navegador, ele abre a página, sem os dados dele, mas abre. Eu queria se caso não tivesse mais o id cadastrado, abrisse algo como nenhum cadastro encontrado ou existente.
    • By mamotinho
      Olá, gostaria de sabe como posso fazer uma contagem regressiva apartir de um registro em meu banco de dados eu tentei montar um código da seguinte forma:

       
      <? $DateGET = date('m/d/Y H:i A', strtotime($result->DateDiscount)); ?> <script> var valueDate = <?=$DateGET?>; var end = new Date(valueDate); var _second = 1000; var _minute = _second * 60; var _hour = _minute * 60; var _day = _hour * 24; var timer; function showRemaining() { var now = new Date(); var distance = end - now; if (distance < 0) { clearInterval(timer); document.getElementById("countdown").innerHTML = "EXPIRED!"; return; } var days = Math.floor(distance / _day); var hours = Math.floor((distance % _day) / _hour); var minutes = Math.floor((distance % _hour) / _minute); var seconds = Math.floor((distance % _minute) / _second); document.getElementById("countdown").innerHTML = "<span class='n_date day' id='days'>" + days + "</span><span class='date'>일</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time hour' id='hrs'>" + hours + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time minute' id='minus'>" + minutes + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time second' id='secs'>" + seconds + "</span>"; } timer = setInterval(showRemaining, 1000); </script> Mais infelizmente não passou a data registrada no banco de dados, alguém teria ideia de como posso ta fazendo.
    • By emmanuelsiqueira30
      Pessoal preciso de uma ajudinha aqui se alguém puder me ajudar fico muito agradecido.
      O problema é o seguinte gostaria de editar dados de um formulário com checkbox usando html e php.
      Desde já agradeço por toda ajuda.
    • By liniker.o
      Boa tarde pessoal!
      Estou com um problema em meu código quando coloco uma referencia de fonte a mesma não carrega, quando faça o mesmo procedimento local colocando os caminhos de pasta funciona normalmente.
      Será que alguém poderia me ajudar?
      Segue o código.
      <html> <head> <title>Minha pagina</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <!-- Se não declarar charset por meta, envie um header de igual valor --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <?php //Carregar imagem tamanho da imagen = 515x76 $img = ImageCreateFromJPEG("base.jpg"); //Definir cor $cor1 = imagecolorallocate($img, 0, 0, 0); $cor2 = imagecolorallocate($img, 0, 0, 0); // carregar fonte... $fonte1 = 'https://ff.static.1001fonts.net/r/o/roboto-condensed.light.ttf'; $fonte2 = 'https://ff.static.1001fonts.net/r/o/roboto-condensed.light.ttf'; //Escrever nome $txtNome = $_POST['nome']; $txtFuncao = $_POST['func']; $txtEmail = $_POST['email']; $txtDDD = "+55 ".$_POST['telefone']; // IMAGEM, TAMANHO_FONTE, 0, POSICAO X, posicao Y, TEXTO_COR, ARQ_FONTE, TEXTO imagettftext($img, 32, 0, 250, 100, $cor1, $fonte1, $txtNome); imagettftext($img, 18, 0, 250, 125, $cor1, $fonte2, $txtFuncao); imagettftext($img, 18, 0, 250, 150, $cor1, $fonte2, $txtEmail); imagettftext($img, 18, 0, 250, 180, $cor1, $fonte2, $txtDDD); //Header e output header('Content-type: image/jpeg'); imagejpeg($img,"Assinatura - ".$txtNome.".jpg"); imagedestroy($img); header('Location: Assinatura - '.$txtNome.'.jpg'); ?>  
    • By gersonab
      Boa tarde a todos, tenho um sistema de upload de arquivos que funciona perfeitamente, agora eu gostaria que estes arquivos fossem armazenados em nuvem, não no servidor, poderiam indicar um tutorial ou como proceder.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.