Como deixar checkbox selecionado conforme banco

Este fórum é para dúvidas onde a base da questão é a linguagem PHP.

Moderador: web

responder a dúvida

Como deixar checkbox selecionado conforme banco

Mensagem por robinhobn Offline » Seg Jan 02, 2012 7:17 pm


Uma dúvida. Tentei aqui e não sei onde estou errando.
Tenho 2 tabelas:
A primeira, com os valores dos checkbox. Exemplo:
• check1
• check 2
• check 3
E tenho uma outra tabela que contem um campo "check": check1,check2
É um form de edição.
Fiz um explode no campo check e com um foreach tenho os valores separadamente.
O problema que quando faço a comparação, deveria ficar o check 1 e check 2 selecionados e não está funcionando.
Pode me dar uma dica?



detalhes...


robinhobn
VETERANO
VETERANO
Mensagens: 149
Registrado em: Qua Set 09, 2009 12:17 am


Como deixar checkbox selecionado conforme banco

Mensagem por web Offline » Seg Jan 02, 2012 8:13 pm

Então você tem os valores fixos da consulta:

• check1
• check 2
• check 3

E quer comparar com os valores "explodidos" e mostrar checados ou não?

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Como deixar checkbox selecionado conforme banco

Mensagem por robinhobn Offline » Ter Jan 03, 2012 9:35 am

Exato.
Os valores são fixos, mas vem de uma tabela do banco também.
E quero comparar com outra tabela.
Os que conferem ficam selecionados.

detalhes...


robinhobn
VETERANO
VETERANO
Mensagens: 149
Registrado em: Qua Set 09, 2009 12:17 am


Como deixar checkbox selecionado conforme banco

Mensagem por web Offline » Ter Jan 03, 2012 3:08 pm

Montei uma base para você adaptar.

Você tem que criar um array com os valores que há no bd para comparar com os valores do checkbox, através da função.

Código: Selecionar todos
<?php
function no_array($valor) {
$Array = array('sim', 'talvez');
if(in_array($valor, $Array)) {
return 'checked="checked"';
}
}
?>

<input type="checkbox" name="campo" value="sim" <?php echo no_array('sim'); ?>>
<input type="checkbox" name="campo" value="nao" <?php echo no_array('nao'); ?>>
<input type="checkbox" name="campo" value="talvez" <?php echo no_array('talvez'); ?>>


detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Como deixar checkbox selecionado conforme banco

Mensagem por robinhobn Offline » Qua Jan 04, 2012 12:06 am

Pois então. Dê uma olhada e veja o que estou fazendo errado.
Código: Selecionar todos
<?php
function verifica($ver) {
$compara = explode(",",$tabela); //Aqui tenho o valor para compara. exemplo $tabela = check1,check3
if (in_array($ver, $compara)) {
return 'checked="checked"';
}}

$sql = "SELECT * FROM checks";   
$qry = mysql_query($sql);
while ($res = mysql_fetch_array($qry)){
$valor = $linha['check']; //Aqui listo as opções de checks. Exemplo: check1  -  check2   -   check3
?>
<input type="checkbox" name="txt_pgto[]" <?php echo verifica($valor); ?>/> <?php echo $valor;?>
<?php  }  ?>


Não rolou. Deveria ficar selecionados neste exemplo: check1 e check3. Deve ser simples, problema de aprendiz. hehe...

detalhes...


robinhobn
VETERANO
VETERANO
Mensagens: 149
Registrado em: Qua Set 09, 2009 12:17 am


Como deixar checkbox selecionado conforme banco

Mensagem por web Offline » Qua Jan 04, 2012 1:02 pm

while ($res = mysql_fetch_array($qry)){
$valor = $linha['check']; //Aqui listo as opções de checks. Exemplo: check1 - check2 - check3

De onde vem $linha? Deveria ser referente ao while, $res

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Como deixar checkbox selecionado conforme banco

Mensagem por robinhobn Offline » Qua Jan 04, 2012 4:37 pm

Eu que digitei errado ali.
Está listando as opções certinho e pegando os resultados das duas tabelas, mas é como se não le o resultado do explode, pois se eu colocar escrito tipo $array = array("check1", "check3"); Vai beleza. Mas pelo resultado do explode não.

detalhes...


robinhobn
VETERANO
VETERANO
Mensagens: 149
Registrado em: Qua Set 09, 2009 12:17 am


Como deixar checkbox selecionado conforme banco

Mensagem por web Offline » Qua Jan 04, 2012 4:42 pm

É porque $tabela está sendo criado fora da função, e não deve estar como global.

Com base no exemplo que postei, testa dessa forma

Código: Selecionar todos
<?php
$tabela = "sim,talvez";

function no_array($valor) {
global $tabela;
$Array = explode(',', $tabela);
if(in_array($valor, $Array)) {
return 'checked="checked"';
}
}
?>

Adapta para seu caso.

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Como deixar checkbox selecionado conforme banco

Mensagem por robinhobn Offline » Qua Jan 04, 2012 9:14 pm

Beleza agora funcionou. Bem isso mesmo.

detalhes...


robinhobn
VETERANO
VETERANO
Mensagens: 149
Registrado em: Qua Set 09, 2009 12:17 am


Como deixar checkbox selecionado conforme banco

Mensagem por web Offline » Qua Jan 04, 2012 9:23 pm

;)

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 12407
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil


responder a dúvida

Voltar para PHP

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes