Ir para conteúdo

POWERED BY:

Arquivado

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

RicardoPorto

Problemas para deixar checkbox marcado

Recommended Posts

Bom galera estou com dúvida de como deixar varios checkbox marcados.

 

Vou tentar explicar o que estou tentando fazer!

 

Tenho uma tabela que traz produtos

 

tab_produtos

ID - Nome Produto

1 - Produto Um

2 - Produto dois

3 - Produto Três

 

E tenho uma tabela onde os armazeno os produtos que cada cliente produz, no caso é uma tabela que faz a ligação de N para N.

 

tab_produtos_cliente

(nesse caso o cliente 14 produz os produtos 1, 2 e 3)

id idProduto idCliente

1 1 14

2 2 14

3 3 14

 

Então dá query da tab_produtos eu faço um loop para criar os checkbox com o nome do produto e id do Produto sendo que os produtos que o cliente produz (1,2 e 3) tem que ficar checados.

 

Já tentei de várias formas mas sem sucesso!!! :(

 

Aguardo uma ajuda dos amigos http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

cola teu script ai no forum.

 

eu faço assim, colo o checkbox com o mesmo nome o value com o id do banco e coloco um if e se existir eu marco.

 

cola como voce esta fazendo que fica mais facil de analisar

Compartilhar este post


Link para o post
Compartilhar em outros sites

faço igual ao bruno, ai vai a parte pratica pra ti ter uma ideia melhor.

assim ficaria o meu checkbox.

 

<input name="checkbox" type="checkbox" id="checkbox" value="S" <?php if (mysql_result($resultado_da consulta,0,"campo_da_consulta")=="S") { echo "checked"; } ?>>

ai no caso quando eu marco o checkbox na hora de salvar no BD eu coloquei como padrao "S", mais tu pode adaptar como tu achar melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza Galera !! Valeu pela força.

 

Vou postar meu código aqui para ver se entendem

 

Aqui eu pego o resulta dos produtos que o cliente produz.

$sqlProdCliente = $mysql->sql_query("select idProduto_fk from tab_prod_cliente 
				     where tab_prod_cliente.idCliente_fk = '$idCliente'");
$resProdSelect = mysql_fetch_object($sqlProdCliente);

Aqui eu pego os produtos

$sqlProdutos = $mysql->sql_query("select * from tb_produtoCliente");
//Aqui eu imprimo os checkbox
while($resProduto = mysql_fetch_object($sqlProdutos)){
<label>
<input name="produto[]" type="checkbox" id="produto[]" value="$resProduto->idProdCliente" // Aqui teria que percorrer o array do $resProdSelect e marcar os que são iguais ao $resProduto->idProdCliente/>
</label>
}

 

 

Espero que tenham entendido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... uma solução mais simples:

function check( $set, $value = 's' )
{
	if( $set == $value )
		return 'checked="checked" ';
	else
		return '';
}
E então você faria:

echo '<input name="produto[]" type="checkbox" id="produto[]" value="$resProduto->idProdCliente" '.check( $resProduto->idProdCliente, $resProdSelect->idProd ).' />';
Tem como fazer do jeito que você disse, guardar todos os valores dos produtos que o teu cliente produz num vetor, e ai comparar um um in_array com oque tá vindo no laço.. mas acho que dá um pouco mais de trabalho.

 

Eu postei uma function que faz isso algumas vezes aqui no fórum.

http://forum.imasters.com.br/index.php?/topic/355482-checkbox-array-de-basedados-para-formulario/page__view__findpost__p__1363155

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera obrigado pela força, mas ainda não consegui resolver meu problema.

 

A solução que o yuriarrua, até deixa o a primeira ocorrência do array marcado, mas no caso de mais de um produto ele não checa.

<input name="checkbox" type="checkbox" id="checkbox" value="S" <?php if (mysql_result($resultado_da consulta,0,"campo_da_consulta")=="S") { echo "checked"; } ?>>

 

E a função do william não funcionou, eu não sei se estou fazendo certo.

function check( $set, $value = 's' )
{
       if( $set == $value )
               return 'checked="checked" ';
       else
               return '';
}

 

Se alguem puder me dar mais alguma dica agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Matias

 

Estou retomando minha aplicação agora depois de uma mudança.

Então, eu não consegui fazer funcionar a função do William, não dá erro nenhum, mas tb não checa.

 

Por favor se alguem tiver mais alguma idéia será bem vinda.

 

Abraço

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.