Ir para conteúdo

POWERED BY:

Arquivado

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

Junior_f04

[Resolvido] Recuperar valor de checkbox não selecionado

Recommended Posts

Pessoal to com uma duvida monstro...

 

quando nos precisamos recuperar o value... de um check selecionado podemos usar

 


<input type='checkbox' name='modulo[]' value='$id_disciplina'>



if(isset($_POST["modulo"]))
{
// Faz loop pelo array dos numeros
foreach($_POST["modulo"] as $modulo)
{
echo $modulo;
}

maravilha retorna tudo certinho ^^

 

e para recuperar o valor dos checks não selecionados ??????? como q faiz isso ... nao consegui de maneira nenhuma ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

os checkboxs nao selecionados nao possuem retorno para o PHP

 

Exemplo: se voce tem um form com o checkbox name="teste" e ele nao for selecionado, ao enviar para o form o php nao vai receber ele ($_POST[teste],$_GET[teste],$_REQUEST[teste]), o retorno seria "null" ou ""

 

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

uhhhh... pq tipo assim ... to fazendo uma parte de editar ...

 

entao a pagina seria mais ou menos assim... os checks vem selecionados conforme resultado do banco ...

 

ai queria se a pessoa tira a selecao do check .. ele pega o id do q foi tirado a selecao e exclui do banco aquele registro ...

 

Deu para entender ??????? :ermm: parece q fico meio confuso ^^

 

vlwwwwwwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe ficou meio confuso mesmo... mas vamos ver se eu entendi!

 

voce precisa que se a pessoa desmarcar o checkbox ele altere a tabela do banco de dados certo?

 

mas pra isso voce precisa pegar que informacao do check, ja que ele esta desmarcado?

 

 

 

se eu entendi, o check vem com o name dele igual o que vem do banco (dai o pq precisar do id dele) certo?

 

 

tem como postar o codigo que busca no sql e o codigo que exibe?

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa tem sim

 

é isso msm .... q tu penso

 

Ps.: o codigo ta uma bagunça to to testando ainda ^^ vlwww pela força

 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?

include "config/config.php";
$id_classe = $_GET['idc'];
$idd = $_GET['idd'];
?>

<form id="form1" name="form1" method="post" action="teste.php?idc=024626">

<table width="100%" border="0">
  <tr>
    <td width="56%">
    
    
    
  <table width="35%" border="0" cellspacing="0">
  <tr>
    <td width="22%" align="right" bgcolor="#EBEBEB">Classe</td>
    <td width="43%" align="right" bgcolor="#EBEBEB">Nome</td>
    <td width="35%" align="right" bgcolor="#EBEBEB">Nota:</td>
    </tr>
      <?


$sql =   
         $q = "SELECT * FROM classeteste where id_classe = $id_classe";
         $r = mysql_query($q);
		 $conta = mysql_num_rows($r);
		 
	        while($reg = mysql_fetch_array($r)){
                  $idclasse[] = $reg['disciplina'];
				 
	

			}

		
	 
	
	 //////////
$consulta=mysql_query("SELECT * FROM disciplina");  
//$conta = mysql_num_rows($consulta);
while ($dados = mysql_fetch_array($consulta)) {	

$nome = $dados['nome_disciplina'];

$id= $dados['id_disciplina'];



?>


<tr>
    <td align="right"><? echo "$nome"; ?></td>
    <td align="right"><? echo "$id"; ?></td>
 

    <td align="right"><input name="modulo[]" type="checkbox" id="ckeck" value="<? echo "$id"; ?>" 
	 
	<? 
			for($x=0;$x<$conta;$x++){
			$dd= $idclasse[$x];


	if($id==$dd){echo "checked ";}
	}
	
	
	?>/>
    
    					</td><input type="hidden" name="id_usuario[]" id="hiddenField" value="<? echo "$id"; ?>" />
    <? 
}// while  
?> 
  </tr>
</table></td>
    </tr>
  <tr>
    <td><input type="submit" name="enviar" id="enviar" value="Cadastrar" /></td>
    </tr>
</table>
</form>
<p>
  
</p>


</body>
</html>
<?

$enviar = $_POST['enviar'];/*Botão enviar*/

if($enviar)/*Se o botão enviar for pressionado, faça...*/
{

if(isset($_POST["modulo"]))
{

$v = sizeof($_POST["modulo"]);


// Faz loop pelo array dos numeros
foreach($_POST["modulo"] as $modulo)
{

$ca[] = $modulo;





//print_r($modulo);


/*
	$sql_pesq = mysql_query("SELECT * FROM classeteste where id_classe = $id_classe AND disciplina = '$modulo'");
	$sql_cont = mysql_num_rows($sql_pesq);

		
	if($sql_cont > 0){}else{ $sql = mysql_query("INSERT INTO classeteste (id_classe,disciplina) VALUES ('$id_classe','$modulo')") or die(mysql_error());
	

			$sqlc = mysql_query("SELECT * FROM classeteste where id_classe = $id_classe AND disciplina = '$modulo'");
			
			$numc = mysql_num_rows($sqlc);
			
			if($numc > 1){
			 
			 $su = $numc - 1;
			
			 $ap= mysql_query("DELETE FROM classeteste where id_classe = $id_classe AND disciplina = '$modulo''  LIMIT $su");

}
}
*/


// to tentando assim .... mais ta osso

			for($xd=0;$xd<$conta;$xd++){
			$ddfg= $idclasse[$xd];

if( $ddfg  $modulo){echo $ddfg."fala<br>";}


}
}





}

			
			
			


}


   ?> 
   


entao ele nao exibe nem um erro ... apenas quando tiro a selecao ... ele tiva o valor da tela ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh, realmente esta bem baguncado Imagem Postada hehehehe

 

vou fazer alguns testes aki e jaja eu posto!

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer assim:

 


<input name="modulo[<? echo "$id"; ?>]" type="checkbox" id="ckeck" ....

 

depois pra verificar...


if( !isset($_POST['modulo'][10] ){
    echo 'O módulo com o ID = 10 foi desmarcado';
}

os módulos que não estiverem setados é pq foram desmarcados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, aqui esta o code conforme nos falamos!

 

espero que ajude! abraços!!!!

 

<?
// conexao
$db = mysql_connect('localhost','root','******');
mysql_select_db('testes');

// Variaveis
$idc = $_REQUEST[idc]; // pega o valor tanto por _GET ou _POST

if ($_REQUEST[salvar]==1) { // se clicou no botao salvar
    $query = 'delete from classeteste where id_classe = '.$idc;
    $notas = $_REQUEST[nota];

    mysql_query($query); // aqui ele apaga tudo o que tiver no DB relacionado a esta classe

    // agora aki a gnt faz ele atualizar o database
    foreach($notas as $valores) {
        $query = 'insert into classeteste (id_classe, disciplina) values (\''.$idc.'\',\''.$valores.'\');';
        mysql_query($query);
    }
    echo 'Cadastro atualizado com sucesso!!!!!<br><a href="teste.php?idc='.$idc.'">clique aqui para voltar!</a>';
} else {
    // querys
    $query = mysql_query('select c.*,d.nome_disciplina from classeteste c left join disciplina d on d.id_disciplina = c.disciplina where id_classe ='.$idc);
    $total = mysql_num_rows($query);
    $n=0; // vou usar para contar o loop
    while ($linha = mysql_fetch_array($query)) {
        $classe[$n][id] = $linha[disciplina];
        $classe[$n][nome] = $linha[nome_disciplina];
        $n++;
    }

    $disciplinas = mysql_query('select * from disciplina');

    echo '<form action="teste.php" method="POST">
    <input type="hidden" name="idc" value="024626">
    <table width="600px" border="1">
        <tr>
            <td>Classe</td>
            <td>Nome</td>
            <td>Nota</td>
        </tr>';

    while ($linha = mysql_fetch_array($disciplinas)) {
        $opt = '';
        foreach($classe as $key) {
            if ($key[id] == $linha[id_disciplina]) {
                $opt = 'checked';
            }
        }
        echo '<tr>
            <td>'.$linha[nome_disciplina].'</td>
            <td>'.$linha[id_disciplina].'</td>
            <td><input type="checkbox" name="nota[]" value="'.$linha[id_disciplina].'" '.$opt.'></td>
          </tr>';
    }
    echo '</table>
    <input type="hidden" name="salvar" value="1">
    <input type="submit" value="Salvar">
    </form>';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

heheheh a gnt so tenta ajudar!!!

 

e quando as informações sao completas!!! a gnt consegue fazer um bom trabalho!

 

 

abraços! e boa sorte no sistema!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rá, e o William Bruno ainda ficou "meio assim" quando eu postei esse artigo.

 

Desculpa xará, mas eu não resisti.

 

Ao autor do tópico, espero que essa seja uma solução mais limpa para o seu código e saudável para seus nervos :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

rapaiz..... isso eu nao tinah pensado UAHuAHuHAuHAuHAUhUAHA

 

 

mas entao, o que ele keria na vdd nao eh muito bem o que ele fala no post... eu falei com ele no msn!

 

o que ele keria era um sisteminha para alterar os valores do database de acordo com os checkbox selecionado.... tipo um sistema de "permissoes" saka???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Afirmativo! E é bem aí que entra a usabilidade do proposto no artigo.

 

Como um checkbox desmarcado não tem correspondência no PHP, esse workaround em HTML (já que não afeta o PHP em nada), garante que sempre se tenha zeros e uns.

 

Daí, ele decide, se armazena todas as permissões numa única coluna do banco, separando por vírgula ou usa como está, um array associativo, onde os índices podem ser as colunas (do tipo CHAR, normalmente) e os valores, as novas permissões.

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.