Ir para conteúdo

POWERED BY:

Arquivado

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

johnhey

Checkbox

Recommended Posts

Bom dia pessoal, antes de mais nada queria pedir desculpas se estou a inserir um tópico em local errado.

Vamos a dúvida, já li vários itens aqui no site mas como sou novo criação de site, preciso de algo mais pormenorizado.

 

Tenho um site com um formulário em HTML, esta tudo a funcionar. Neste formulário tem um método de como deverá contactar o cliente, se é por carta, email ou telefone, feito com checkbox.

Tenho um outro ficheiro em PHP que envia por email quando o formulário é preenchido, esta a funcionar pois recebo o email.

O problema é:

 

no checkbox recebo apenas o valor do último que cliquei, como faço para fazer as seguinte lógica.

 

if checkbox1 = true and checkbox2 and checkbox3 = false){

método = carta

}

 

if checkbox1 and checkbox2 = true and checkbox3 = false){

método= carta e email

}

 

em meu ficheiro HTML tenho da seguinte formas os checkbox:

 

<form method="post" action="formulario.php">
<h6>* = Campos obrigatórios </h6>
      <p>
     	 <label for="name"> *Nome: </label>
         <input name="name" id="name" type="text" placeholder="Digite seu nome" required="required"/>
      </p>
      <p>
		<label for="email"> Email: </label>
        <input name="email" id="email" type="email" placeholder="Digite seu email"/>
      </p>
      <p>
        <input id="checkbox1" name="metodo" type="checkbox" value="Carta" />
        <label for="metodo"> Carta </label>
        <input id="checkbox2" name="metodo" type="checkbox" value="email" />
        <label for="metodo"> email </label>
	<input id="checkbox3" name="metodo" type="checkbox" value="Telefone/Telemóvel"/>
        <label for="metodo"> Telefone/Telemóvel </label>
      </p
</form>

 

no ficheiro php tenho:

// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS
$nome = $_POST['name'];
$email = $_POST['email'];
$metodo = $_POST['método']; //LINHA DO CHECKBOX

 

tenho que fazer a condição no ficheiro HTML ou no PHP? se for no HTML como fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

resolvi colocar da seguinte forma no ficheiro php.

 

$check1 = $_POST['checkbox1'];
$check2 = $_POST['checkbox2'];
$check3 = $_POST['checkbox3'];

if ($check1 == Carta){
$tipocontacto = "Carta";	
}
if ($check1 == Carta) && ($check2 == email){
$tipocontacto = "Carta ou email";	
}

$metodo = $tipocontacto;

 

Mas infelizmente da erro:

 

Parse error: syntax error, unexpected T_LOGICAL_AND in /htdocs/public/www/formulario.php on line 12

 

a linha 12 é if ($check1 == Carta) && ($check2 == email){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, pessoal, coloquei da seguinte forma e esta a resultar, pode não ser da melhor forma, mas até que apareça uma forma melhor irei usar esta.

 

<?php
$erro = "Ocorreu o seguinte erro, ";
$status = false;

$check1 = $_POST['checkbox1'];
$check2 = $_POST['checkbox2'];
$check3 = $_POST['checkbox3'];
$check4 = $_POST['morada'];
$check5 = $_POST['email'];
$check6 = $_POST['contacto'];

if ($check1 == "1"){
$tipocontacto = "Carta";	
}
if ($check2 == "2"){
$tipocontacto = "email";	
}
if ($check3 == "3"){
$tipocontacto = "Telefone/Telemovel";	
}
if ($check1 == "1" and $check2 == "2"){
$tipocontacto = "Carta ou email";	
}
if ($check1 == "1" and $check2 == "2" and $check3 == "3"){
$tipocontacto = "Carta, email ou Telefone";	
}

if ($check1 == "1" and $check3 == "3"){
$tipocontacto = "Carta ou Telefone";	
}

if ($check2 == "2" and $check3 == "3"){
$tipocontacto = "email ou Telefone";	
}

// CONFIGURAÇÃO DO FORMULÁRIO.

// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS
$nome = $_POST['name'];
$email = $_POST['email'];
$contacto = $_POST['contacto'];
$assunto = $_POST['assunto'];
$metodo = $tipocontacto;
$morada = $_POST['morada'];
$mensagem = $_POST['comment'];

if ($nome == ""){
	$erro .=("preencha o campo nome");
	$status = true;
}
if ($assunto == ""){
	$erro .=("preencha o campo assunto");
	$status = true;
}
if ($mensagem == ""){
	$erro .=("preencha sua mensagem");
	$status = true;
}

if ($check1 == "1" and $check4 == ""){
	$erro .=("preencha o campo da morada");
	$status = true;	
}
if ($check2 == "2" and $check5 == ""){
	$erro .=("preencha o campo do email");
	$status = true;	
}
if ($check3 == "3" and $check4 == ""){
	$erro .=("preencha um telefone de contacto");
	$status = true;	
}
if ($status == false){
código de envio aqui
else
echo($erro);
}
?>

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.