Ir para conteúdo

POWERED BY:

Arquivado

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

Vinícius Franke

PHP + checkbox + mysql

Recommended Posts

Bom dia pessoal, estou com uma dúvida e preciso de ajuda.

 

É o seguinte, eu estou fazendo um sistema com restrições por classe de usuário (cada usuário tem uma classe e essa classe recebe as permissões de acesso).

 

No meu banco tenho uma tabela assim: um campo CodTela (referente a tela do sistema), um campo CodClasse (referente a classe de usuário) e um campo Status (que seria o status da tela para determinada classe: ATIVO ou INATIVO).

 

O que estou fazendo é o seguinte, na minha página php eu seleciono a classe de usuário e através de uma consulta eu listo as telas e verifico quais estão ativas/inativas para a mesma. Se estiver ativa, vai ficar marcada num checkbox, se não estiver, não fica marcada.

 

O que eu preciso é outra história, se eu marcar um check, tem que gravar no banco (através de um UPDATE) como ATIVO. Também preciso que seja verificados os checks que não estão marcados para gravar no banco como INATIVO.

 

Deu pra entender?

 

alguém?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que voce quer fazer, eh ao clicar ele ja da update ou você seleciona e dpois ao clicar no botao de envio ele faz o update??

 

caso seja a segunda opcao, teria como enviar seu formulario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que voce quer fazer, eh ao clicar ele ja da update ou você seleciona e dpois ao clicar no botao de envio ele faz o update??

 

caso seja a segunda opcao, teria como enviar seu formulario?

 

lambrusco, é a segunda opção.

 

segue abaixo o meu codigo.

 

                $id=2; //esse id eu to passando aqui, mas ele pega de um GET
		
		$sql1 = "SELECT telas.descricao, telas.codtela, permissoes_telas.status FROM telas 
		INNER JOIN permissoes_telas ON telas.codtela = permissoes_telas.codtela 
		WHERE telas.status='ATIVO' AND permissoes_telas.codclasse='".$id."'";
		$rs = mysql_query($sql1);
		
		if (mysql_num_rows($rs) < 1){
			print "Não há telas ativas.";
		}else{
			echo "<form method='post' action='telas_classe.php'>"; 
			while ($valor = mysql_fetch_array($rs)){
				if ($valor['status'] == 'ATIVO'){
					echo "<input type='checkbox' checked name='check[]' value='".$valor['codtela']."'>".$valor['descricao']."<br>";
				}else{
					echo "<input type='checkbox' name='check[]' value='".$valor['codtela']."'>".$valor['descricao']."<br>";
				}
			}
			echo "<input type='submit' value='Gravar'>";
			echo "</form>";
		}


// Verifica se usuário escolheu alguma checkbox.
if(isset($_POST["check"]))
{
	// Faz loop pelo array variavel
	foreach($_POST["check"] as $variavel)
	{
                        // aqui está inserindo os checkbox que foram marcados, está faltando o código pros checkbox que não estão marcado (que não sei como fazer)
			$sql4 = "UPDATE permissoes_telas SET status='ATIVO' WHERE codclasse='".$id."' AND codtela !='".$variavel."'";
			$rs4 = mysql_query($sql4);
		
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque a parte do codigo que faz a verificacao e update antes da criacao do formulario

abrs

 

bem ao meu entendimento acontece o seguinte, neste foreach aí está dando POST nos checkbox marcados.

A parte de dar update para ativar está funcionando, eu só não estou conseguindo dar o update nos checkbox que não estão marcados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que vocÊ deve fazer é iniciar tudo como inativo

 

//esse não deve estar dentro do foreach deve estar antes

$sql4 = "UPDATE permissoes_telas SET status='INATIVO' WHERE codclasse='".$id."';

 

e ai sim você faz update dos que estão ativos

 

$sql4 = "UPDATE permissoes_telas SET status='ATIVO' WHERE codclasse='".$id."' AND codtela !='".$variavel."'";

 

FLW

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.