Jump to content


Photo

Duvida, Como Salvar Checkboxs No Banco!


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

#1 Bábara

Bábara

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino
  • Localidade:BH - MG

Posted 20/03/2009, 11:45

oi Pessoal bom dia!
Estou tentando salvar os checkboxs no banco e não sei como fazer, eu achava que era simplesmente fazer como o radio, mais ai só salva a primeira obção que marquei, deem uma olhada no código:
<td height="42"> <font color="#660000" size="2" face="Arial"><b>Possui Algum Destes Serviços:<br>
	 </b> </font><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
		  <label>
  <input type="checkbox" id="possuiServicos0" name="possuiServicos" <?php if($_GET["atualizar"] =="1"){
		  //Marcar o campo
		   if($arrDaEs["possuiServicos"] == "0") echo "checked";
		  }
		  ?> value="bpc">
  BPC<br> </label>
		  <label>
		  <input type="checkbox" id="possuiServicos1" name="possuiServicos" <?php if($_GET["atualizar"] =="1"){
		  //Marcar o campo
		   if($arrDaEs["possuiServicos"] == "1") echo "checked";
		  }
		  ?> value="bolsa">
  Bolsa Família<br></label>
		  <label>
  <input type="checkbox" id="possuiServicos2" name="possuiServicos" <?php if($_GET["atualizar"] =="1"){
		  //Marcar o campo
		   if($arrDaEs["possuiServicos"] == "2") echo "checked";
		  }
		  ?> value="cesta">
  Cesta Família <br></label>
			<label>
  <input type="checkbox" id="possuiServicos3" name="possuiServicos" <?php if($_GET["atualizar"] =="1"){
		  //Marcar o campo
		   if($arrDaEs["possuiServicos"] == "3") echo "checked";
		  }
		  ?> value="servidor">
  Cartão Servidor<br></label>
			  <label>
  <input type="checkbox" id="possuiServicos4" name="possuiServicos" <?php if($_GET["atualizar"] =="1"){
		  //Marcar o campo
		   if($arrDaEs["possuiServicos"] == "4") echo "checked";
		  }
		  ?> value="agente">
  Agente Jovem<br></label>
			<label>
  <input type="checkbox"id="possuiServicos5" name="possuiServicos" <?php if($_GET["atualizar"] =="1"){
		  //Marcar o campo
		   if($arrDaEs["possuiServicos"] == "5") echo "checked";
		  }
		  ?> value="outro">
  Outro:</label>

E na hora de passar identificando o que é cada um para o banco:
if($possuiServicos == "bpc") $possuiServicos ="0";
	  else if($possuiServicos == "bolsa") $possuiServicos ="1";
	  else if($possuiServicos == "cesta") $possuiServicos ="2";
	  else if($possuiServicos == "servidor") $possuiServicos ="3";
	  else if($possuiServicos == "agente") $possuiServicos ="4";
	  else if($possuiServicos == "outro") $possuiServicos ="5";

e para gravar no banco:
$_POST["possuiServicos"]

Não sei direito, mais ACHO que vou ter q fazer alguma coisa no código de salvar no banco, só não sei o que fazer, kkkkk
Me ajudem por favor?
Valeu!!!

#2 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 20/03/2009, 11:58

Deixa o nome dos checkbox com colchete no final, assim: possuiServicos[]. Agora todos os checkbox marcados estarão na variável $_POST['possuiServicos'].
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#3 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 20/03/2009, 12:17

Ou então coloque nomes diferentes, porque checkbox não é igual radio. Isso que você fez é a mesma coisa que colocar o mesmo nome em mais de um input do tipo text.
att,
Muller Dias
ex-administrador Fórum WMO

#4 Bábara

Bábara

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino
  • Localidade:BH - MG

Posted 21/03/2009, 09:06

Obrigada!!!

ixi tentei fazer o assim e não deu certo : name="possuiServicos[]"

#5 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 21/03/2009, 12:44

E o que deu, ou não deu? O que aconteceu, ou não aconteceu?
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#6 Bábara

Bábara

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino
  • Localidade:BH - MG

Posted 23/03/2009, 10:16

E o que deu, ou não deu? O que aconteceu, ou não aconteceu?

Não salvou no banco. e quando não marco nenhuma opção da o seguinte erro:

Notice: Undefined index: possuiServicos in f:\arquivos de programas\easyphp1-8\www\paradesenvolvercp170908271008\intranet\gravaquesoec.php on line 60

#7 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 23/03/2009, 11:54

Você está pegando os valores assim?

$possuiServicos = $_POST['possuiServicos'];

Pois é, assim não pega não, porque é um array. Caso tenha só um campo na tabela para guardar os valores, você vai ter que implodir o array.
att,
Muller Dias
ex-administrador Fórum WMO

#8 Bábara

Bábara

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Feminino
  • Localidade:BH - MG

Posted 24/03/2009, 11:58

me dê um exemplo por favor?
Obrigada!!!

#9 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 24/03/2009, 13:01

Se você der um print_r($possuiServicos), você verá tudo que tem dentro do array. Será algo assim:

Array
(
	[0] => value 1
	[1] => value 2
	[2] => value 3
)

Cada elemento do array representa um checkbox marcado. E os valores dos elementos são os values dos checkboxs.

Para esse array se tornar uma string, você terá que implodir ele. Use a função implode().

Exemplo:

echo implode("|", $possuiServicos);
// Resultado: value 1|value 2|value 3

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#10 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 24/03/2009, 17:28

... e quando não marco nenhuma opção da o seguinte erro:

Não será enviado nada se não tiver nenhuma opção selecionada, nem mesmo um campo vazio. Por isso você tem que verificar se essa variável existe. Use um isset().
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador




1 user(s) are reading this topic

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

IPB Skin By Virteq