Jump to content


Photo

Usar Checkbox Para Gravar Dados No Banco E Depois Traze-los


  • Faça o login para participar
5 replies to this topic

#1 XflaviO

XflaviO

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino

Posted 10/03/2008, 00:51

Fala galera,

Gostaria de saber como devo fazer para gravar dados em uma checkbox, depois em uma pagina de Atualizar, ela retone Marcada, para que eu possa Marcar a Segunda Checkbox e mandar atualizar e assim ficar as 2 marcadas, e assim consecutivamente.... vocês poderiam me dar uma luz?

<form action="gravar_no_banco.php" method="post">
<input type="checkbox" name="dia17_manha" value="manha">
<input type="checkbox" name="dia17_tarde" value="tarde">
<input type="checkbox" name="dia18_manha" value="manha">
<input type="checkbox" name="dia18_tarde" value="tarde">
<input type="submit" name="enviou" value="Enviar" />
</form>
Sendo que eu tenho que Gravar 2 por dia, e assim chegando ao ao final desses 2 dias.. vai ter que esta os 4 checkbox.

$sql = mysql_query("INSERT INTO tabela (dia17_manha,dia17_tarde) VALUES ('$manha,$tarde')");

E assim fazer um outro INSERT para o dia 18. (não sei se essa logica esta das melhores)
e gostaria de obter esses resultados de volta do banco.. Alguém poderia me ajudar com uma Lógica melhor q essa??? Obrigado!!!!

Edição feita por: XflaviO, 10/03/2008, 00:53.


#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 10/03/2008, 03:40

kara eu trabalho com checkboxes, fazendo um script de validação, tipow, depois que tu pega os $_POST delas, tu verifica se tah preenchida. Se tiver, tu add algo no BD pra recuperar depois. Na página de atualizaçao é parecido. Tu busca no BD o valor que tu add e ae vc verifica se tah aquele determinado valor e checa ou m a checkbox. Fui meio rápido pq to com pressa xD. Se n entender, tem como eu explicar melhor com exemplos, mas hj fiko te devendo.

/*DarkSign*/
Não sabe por onde começar? Que tal pelas Regras ?

#3 XflaviO

XflaviO

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino

Posted 10/03/2008, 23:33

você fala mais ou menos assim?

<input type="checkbox" name="project" <?php if(($row->project) == 1) {?> checked <?php } ?> value="1"> Sim <input type="checkbox" name="project" <?php if(($row->project) == 0) {?> checked <?php } ?> value="0" > Não
mais não estou conseguindo implementar isso e faze-lo funcionar.. será que você pode me ajudar com exemplos?
fico agradecido! :)

#4 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 11/03/2008, 02:04

kara, antes de passar exemplos pra ti, preciso saber qual doctype está utilizando: XHTML, HTML puro? sabendo disso posso ajudar melhor

/*DarkSign*/
Não sabe por onde começar? Que tal pelas Regras ?

#5 XflaviO

XflaviO

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino

Posted 12/03/2008, 23:04

To trabalhando com HTML+PHP ué.. mais isso não influi em nada .. rsrsrs



tenho um exemplo aqui.. se alguém poder me ajudar eu agradeço...



if ( isset($_REQUEST['codigo']) ) {
		if ( $_POST['checkbox1'] == "Dia18Tarde" ) {
			$check01 = 1;
		} else {
			$check01 = 0;
		}

		if( $_POST['checkbox2'] == "Dia18Noite" ) {
			$check02 = 1;
		} else {
			$check02 = 0;
		}

		if( $_POST['checkbox3'] == "Dia19Tarde" ) {
			$check03 = 1;
		} else {
			$check03 = 0;
		}

		if( $_POST['checkbox4'] == "Dia19Noite" ) {
			$check04 = 1;
		} else {
			$check04 = 0;
		}
		
		//executa query no banco
		//$conexao = mysql_connect($host, $user, $pass);
		//$db = mysql_select_db($database, $conexao);

		$comando = '
update
		validacao
set
		validacao.check01 = ' . $check01 . ',
		validacao.check02 = ' . $check02 . ',
		validacao.check03 = ' . $check03 . ',
		validacao.check04 = ' . $check04 . ' 
		';

		$query = mysql_query($comando);
		
		 if ( @ mysql_errno($query) == 0 ) {
		 
		   echo 'update ok';
		} else {
		   echo 'update falhou';
		}
		
   }

Como eu monto um o Campo Input do checkbox para verificar se ta marcado ou não...

exemplo:

<p><input type="checkbox" name="checkbox1" value="<?php echo $check01; ?>">

onde o valor original é: <!-- value="Dia18Tarde"> -->

alguem pode me dar alguma LUZ ???? OBRIGADO!!!!

#6 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 13/03/2008, 09:24

Não é muito mais fácil você simplesmente armazenar com vírgulas:

$_POST['chk_01'] . ',' . $_POST['chk_02'] . ',' . $_POST['chk_03']
(óbvio que você deve trara as informações antes.

Daí no campo do BD, que pode ser um só, ao invés de um pra cada checkboxes, os dadps vão assim:

valor1,valor2,valor3

Sendo que os valores é o que você passou na propriedade HTML value

Depois, pra listar os dados, você recebe normalmente, com mysql_fetch_assoc() por exemplo e explode para separar as informações pelas vírgulas.

Daí você terá:

Array
(
	 [0] => valor1
	 [1] => valor2
	 [2] => valor3
)
E pra usar, é só comparar com IF's diretamente onde você imprime o checkboxes (caso não use template):

$HTML = <input type="checkbox" name="valor1" id="valor1">

$HTML .= if( $array[0] == 'valor1'  ?  ' checked="checked" />'  :  ' />' );

print $HTML;
Esse jeito é feio e ultrapassado, não faço assim há anos, mas a idéia é essa.

Claro que você vai integrar melhor o BD com a programação em loops, validações e etc. Mas a idéia é essa ;-)

Edição feita por: Bruno Augusto, 13/03/2008, 09:25.





2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq