Jump to content


Photo

Porque Meu Checkbox Sempre Vai Com O Valor "sim" ?


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

#1 michelmfreitas

michelmfreitas

    ...

  • Usuários
  • 310 posts
  • Sexo:Não informado

Posted 22/12/2007, 15:58

Olá pessoal, estou com um problema aqui. Tenho um form que contem a seguinte linha:

<p><label>Destaque Principal</label><input name="destaque" type="checkbox" id="destaque" style="border:0;" value="sim" /></p>

QUando recupero esses dados no JS/php, ele sempre grava no db com o valor "sim", mesmo a caixa desmarcada. porque?

function AdicionarNoticias(formularioNoticia){
	
	$.post("classes.php", {objeto:"Noticias", metodo:"Adicionar", titulo:$("#titulo").val(), noticia:$("#noticia").val(), foto:$("#foto").val(), data:$("#data").val(), hora:$("#hora").val(), destaque:$("#destaque").val() }, 
																																															function(){
		alert($("#destaque").val()); // AQUI ELE RETORNA SEMPRE 'SIM'
		//window.location.href='?pagina=noticias';	
	}
	
	);

}

Michel Martins

#2 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

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

Posted 22/12/2007, 16:06

Isso é falha na programação PHP e não no JavaScript.

Você deve verificar se a variável super global foi setada com isset() e se possui algum valor com empty()

Se tiver algum valor, a variável será o próprio valor, caso contrário será "sim" (ou não, conforme sua necessidade) como valor padrão.

#3 michelmfreitas

michelmfreitas

    ...

  • Usuários
  • 310 posts
  • Sexo:Não informado

Posted 22/12/2007, 16:54

Não, pois antes que ele vá para o código php ele puxa este codigo em JS...

<form id="formularioNoticia" name="formularioNoticia" action="java script:void(0);" onSubmit="AdicionarNoticias(this)" enctype="multipart/form-data" method="post">

veja o onSubmit dele...
Michel Martins

#4 Alex Hiroshi

Alex Hiroshi

    Super Veterano

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

Posted 22/12/2007, 22:48

No seu teste:
alert($("#destaque").val()); // AQUI ELE RETORNA SEMPRE 'SIM'
O que acontece é que o val() vai sempre te retornar o value do elemento, independente se ele foi ou não marcado. Antes de enviar o valor, verifique se o checkbox foi marcado.
if ($("#destaque").attr("checked"))
{
	alert("Foi marcado: "+$("#destaque").val());
}

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