Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Braga (c)

[Resolvido] Check Box Dinâmico, Gravar Dados e Fazer Select

Recommended Posts

Olá pessoal!

 

Estou enfrentando um problema a dias e resolvi recorrer ao forum, acho que com ajuda e experiencia de você eu posso conseguir alguma resposta.

 

Preciso resgatar valores de checkBox ja preenchidas, vindo do MYSQL

 

Segue minha estrutura

 

MYSQL

 

CREATE TABLE `tb_cast` (
  `id_cadastro` varchar(36) NOT NULL DEFAULT '',
  `id_codigo` varchar(50) DEFAULT NULL,
  `resp_nome` varchar(50) DEFAULT NULL,
  `menor_habilidades` varchar(250) DEFAULT NULL,
  PRIMARY KEY (`id_cadastro`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

Form de cadastro

 

<input type="checkbox" name="menor_habilidades[]" id="Lê" value="hab01" />
<label for="Lê" class="opt">Lê</label>
<input type="checkbox" name="menor_habilidades[]" id="Escreve" value="hab03" />
<label for="Escreve" class="opt">Escreve</label>
<input type="checkbox" name="menor_habilidades[]" id="Fala" value="hab04" />
<label for="Fala" class="opt">Fala</label>
<input type="checkbox" name="menor_habilidades[]" id="Dança" value="hab05" />
<label for="Dança" class="opt">Dança</label>
<input type="checkbox" name="menor_habilidades[]" id="Canta" value="hab06" />
<label for="Canta" class="opt">Canta</label>
<input type="checkbox" name="menor_habilidades[]" id="Interpreta" value="hab07" />
<label for="Interpreta" class="opt">Interpreta</label>

Insert no Mysql

 

$campos_habilidade = "";	// crio a variável $campos, que será adicionado os valores a partir do foreach
$adiciona = ", "; // esse campo tem o valor que será adicionado para separar cada item enviado
$mais = 0;		// esse é um valor que vai ser incrementado, para adicionar ou não o $adiciona ( vírgula para separar os itens )

foreach($_POST['menor_habilidades'] AS $valor) { // separo cada e armazeno em $valor
$mais++; // incremento $mais, 0, 1, 2, ...
// aqui eu faço a adição ou não da vírgula para separar cada item
// além de mandar os valores para $campos
if($mais < count($_POST['menor_habilidades'])) {
$campos_habilidade.=$valor.$adiciona;
} else {
$campos_habilidade.=$valor;
} // fim do if
} // fim do foreach

 $id_codigo = $randomCodigo;
 $resp_nome = $_POST['resp_nome'];

$sql = "insert into tb_cast ( id_cadastro, id_codigo, resp_nome, menor_habilidades) ";

$sql .= "values ( uuid(), '$id_codigo', '$resp_nome', '$campos_habilidade' )"; 

Até aqui tudo beleza, grava, com ", "virgula + espaco, tranquilo, no mesmo campo.

Aqui vem o problema!

 

Select dos dados


$re = mysql_query("SELECT * FROM tb_cast WHERE id_cadastro = '$idcast'");

while($l = mysql_fetch_array($re)) 
	{
$id						= $l["id_cadastro"];
	$id_codigo				= $l["id_codigo"];
$resp_nome				= $l["resp_nome"];
$menor_habilidades		= $l["menor_habilidades"];

}

	$menor_habilidades = explode(", ", $l["menor_habilidades"]);
        for($i=0; $i<sizeof($menor_habilidades); $i++){
			
			//echo $menor_habilidades[$i]; // Apenas para testar o echo

        }

 

HTML com os Checks

 


<input name="menor_habilidades[]" type="checkbox" id="Lê" value="hab01" <?php if (!(strcmp("hab01", $menor_habilidades[$i]))) {echo "checked=\"checked\"";} ?>/>
<input type="checkbox" name="menor_habilidades[]" id="Escreve" value="hab02" 
	<?php if (!(strcmp("hab02", $menor_habilidades[$i]))) {echo "checked=\"checked\"";} ?>/>
<input type="checkbox" name="menor_habilidades[]" id="Fala" value="hab03" <?php if (!(strcmp("hab03", $menor_habilidades[$i]))) {echo "checked=\"checked\"";} ?>/>
<input type="checkbox" name="menor_habilidades[]" id="Dança" value="hab04" <?php if (!(strcmp("hab04", $menor_habilidades[$i]))) {echo "checked=\"checked\"";} ?>/>
<input type="checkbox" name="menor_habilidades[]" id="Canta" value="hab05" <?php if (!(strcmp("hab05", $menor_habilidades[$i]))) {echo "checked=\"checked\"";} ?>/>
<input type="checkbox" name="menor_habilidades[]" id="Interpreta" value="hab06"<?php if (!(strcmp("hab06", $menor_habilidades[$i]))) {echo "checked=\"checked\"";} ?> />

Na hora de resgatar e apresentar os dados que estão selecionados (checked), nao estou conseguindo trazer no laco e jogar nos campos dos Checks

 

 

Alguem tem alguma ideia do que pode esta ocorrendo

 

Se ajudar, este erro é apresentado

echo do Explode: hab01hab04hab06

Erro

Notice: Undefined index: acao in /Users/mycomp/Desktop/SITEs/clienteTeste/admin/cadastro_alterar.php on line 631

Essa linha 631, é onde eu resgato o valor para os Checks no HTML, ele apresenta um erro para cada CheckBox

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Victor

Obrigado pela contribuição, mas no caso deste post le tinha uma tabela somente para o checkbox, ja no meu caso eu tenho apenas um campo dentro da tabela principal de cadastro

 

o que eu preciso (Acredito eu) é dar um explode, separar os itens e jogar para seus check box que estao selecionados para que o usuario possa fazer update.

 

Valew por enquanto, ainda continuo tentando aqui :)

 

resolvi um topico semelhante, ve se ajuda

http://forum.imasters.com.br/index.php?/topic/406851-checkbox

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta faze um foreach em cada checkbox, pois a posição do vetor não vai ser fixa, vai variar de acordo com uq o cara escolher...

<input type="checkbox" name="menor_habilidades[]" id="Escreve" value="hab02"         
<?php 
foreach($menor_habilidades as $hab){
if (!(strcmp("hab02", $hab))) {echo "checked=\"checked\"";}} ?>/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado pela ajuda Galuschka!!!

 

Funcionou perfeitamente agora, desta forma que voce citou ai em baixo! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Valew cara!

 

tenta faze um foreach em cada checkbox, pois a posição do vetor não vai ser fixa, vai variar de acordo com uq o cara escolher...

<input type="checkbox" name="menor_habilidades[]" id="Escreve" value="hab02"         
<?php 
foreach($menor_habilidades as $hab){
if (!(strcmp("hab02", $hab))) {echo "checked=\"checked\"";}} ?>/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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