Ir para conteúdo
Fórum Script Brasil
  • 0

Como Atualizar Checkbox com Dados de um Array


Decolou

Pergunta

Saudações amigos do forum:

Tenho um arquivo de Update de um formulário com diversos campos Checkbox que desejo que venham marcados as opções gravadas do banco de dados e que possa ser alterado caso necessário. Gostaria de aprender como se faz e depois ajudar outros que estiverem com dificuldade parecida.

<?php


if($_POST['id_imovel'] != ""){

### Dados provenientes de do formulário de edição, onde são gravados informações de um imóvel em forma de Array separados por "|" (valor1| valor2 | valor3| valor4...etc). ###

$detalhes1 = "$_POST[edi]$_POST[grades]$_POST[canil]$_POST[grama]$_POST[kitnet]$_POST[cobertura]$_POST[duplex]";
mysql_query("UPDATE imoveis SET detalhes = '$detalhes1' WHERE id_imovel = '$_POST[id_imovel]'");

print "<script Language=\"JavaScript\">";

print "window.opener.location.href = \"editar_imoveis.php?id_imovel=$_POST[id_imovel]\";";

print "window.close();";

print "</script>";

exit;
}

## Recarrega a página detalhes depois da atualização ##
$sql = mysql_query("SELECT * FROM imoveis WHERE id_imovel= '$_GET[id_imovel]'") or die(mysql_error());

$linha = mysql_fetch_array($sql);
$detalhes1 = $linha['detalhes'];
$detalhes = explode("|", $detalhes1); //Separa os dados do separador "|"

?>

<form name="form1" method="post" action="detalhes.php">
<div align="center"><span class="style1">


<table width="95%" border="0" align="center" cellpadding="4" cellspacing="8" class="preto11">
<tr>
<td class="caixa10" style="padding:4px"><b> ..: Detalhes :.. </b></td>
</tr>
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="2" class="preto10">
<tr bgcolor="#E0E0E0">

### Tentei fazer o chaveamento como abaixo e não funcionou, pois a chave que vem nunca é a correspondente ao valor gravado no Array
Já pesquisei em diversos lugares e não encontrei nada que ajude a resolver o problema .
Também, a  posição "0" do Array sempre vem com um valor, mesmo que a tabela esteja vazia..###


<? if ($detalhes[0] == "") { ?>
<td width="2%"><input name="edi" type="checkbox" class="preto10" value="Ed&iacute;cula|"></td>
<? } else { ?>
<td width="2%"><input name="edi" type="checkbox" class="preto10" checked="checked" value="Ed&iacute;cula|"></td>
<? } ?>
<td width="20%">Ed&iacute;cula</td>
<? if ($detalhes[1] == "") { ?>
<td width="2%"><input name="grades" type="checkbox" class="preto10" value="Grades Janelas|"></td>
<? } else { ?>
<td width="2%"><input name="grades" type="checkbox" class="preto10" checked="checked" value="Grades Janelas|"></td>
<? } ?>
<td width="20%">Grades Janelas</td>
<? if ($detalhes[2] == "") { ?>
<td width="2%"><input name="canil" type="checkbox" class="preto10" value="Canil|"></td>
<? } else { ?>
<td width="2%"><input name="canil" type="checkbox" class="preto10" checked="checked" value="Canil|"></td>
<? } ?>
<td width="20%">Canil</td>
<? if ($detalhes[3] == "") { ?>
<td width="2%"><input name="grama" type="checkbox" class="preto10" value="Jardim c/ grama|"></td>
<? } else { ?>
<td width="2%"><input name="grama" type="checkbox" class="preto10" checked="checked" value="Jardim c/ grama|"></td>
<? } ?>
<td width="20%">Jardim c/ grama</td>
</tr>
<tr bgcolor="#F1F1F1">
<? if ($detalhes[4] == "") { ?>
<td><input name="kitnet" type="checkbox" class="preto10" value="Kit Net|"></td>
<? } else { ?>
<td><input name="kitnet" type="checkbox" class="preto10" checked="checked" value="Kit Net|"></td>
<? } ?>
<td>Kit Net </td>
<? if ($detalhes[5] == "") { ?>
<td><input name="cobertura" type="checkbox" class="preto10" value="Cobertura|"></td>
<? } else { ?>
<td><input name="cobertura" type="checkbox" class="preto10" checked="checked" value="Cobertura|"></td>
<? } ?>
<td>Cobertura</td>
<? if ($detalhes[6] == "") { ?>
<td><input name="duplex" type="checkbox" class="preto10" value="Duplex|"></td>
<? } else { ?>
<td><input name="duplex" type="checkbox" class="preto10" checked="checked" value="Duplex|"></td>
<? } ?>
<td>Duplex</td>
</tr>

....


?>


Como posso buscar os valores corretamente e fazer o chaveamento dos campos vazios e marcados (checked)?

Agradeço a ajuda antecipadamente.
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá Decolou!

Como você salva isso no banco de dados?

Creio que uma boa prática seria colocar valores "binários" para os checkboxes: Marcado = 1, Desmarcado = 0

Assim, você poderá percorrer a busca do banco de dados, e gerar seus checkboxes marcados ou não, em acordo com o banco de dados!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...