Ir para conteúdo

POWERED BY:

Arquivado

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

Marcus Marinho

[Resolvido] Formulário de contato HTML+PHP

Recommended Posts

Pessoal,

 

Tenho o código abaixo, está funcionando, porém não 100%. O meu problema é o seguinte: Tenho um formulário em uma página HMTL e uma outra PHP, onde recebe os dados vindos do formulário nesta página HMTL. Um dos campos do formulário é um campo combobox, onde, quando o usuário escolher uma das opções, vai direcionar para um determinado email. O nome do campo é "setor". O problema é que no email que o site recebe do formulário, o campo setor vem preenchido com o email e não com o nome do setor escolhido. Segue exemplo e o código:

 

Exemplo:

 

Nome: Dfzsdf

E-mail: SDfasdf

Assunto: asdfasf

Fone: asdfasdf

Setor: contato@xxxxxx.com.br

Mensagem: asdfasdfafas

 

HTML:

 

<form name="form_contato" method="POST" action="contato.php">
		    <div align="center">
			<p align="left" style="margin-top: 20px">
					 </p>
			<table width="415" height="285" border="0" cellspacing="0" cellpadding="0" id="table19"><tr>   
			<td width="83" height="30" align="right" valign="top">
			<font color="#FFFFFF" size="2"><label for="nome">Nome:   </label>
			</font></td>   
			<td width="332" height="30" align="left" valign="top"><input type="text" name="nome" size="35"></td></tr><tr>   
			<td width="83" height="30" align="right" valign="top">
			<font color="#FFFFFF" size="2"><label for="email">
			E-mail:   </label></font></td>   
			<td width="332" height="30" align="left" valign="top"><input type="text" name="email" size="35"></td></tr><tr>   
			<td width="83" height="30" align="right" valign="top">
		        <font color="#FFFFFF" size="2"><label for="assunto">
			Assunto:   </label></font></td>   
		        <td width="332" height="30" align="left" valign="top"><input type="text" name="assunto" size="35"></td></tr><tr>   
			<td width="83" height="30" align="right" valign="top">
			<font color="#FFFFFF" size="2"><label for="tel">
			Telefone:   </label></font></td>   
			<td width="332" height="30" align="left" valign="top"><input type="text" name="tel" size="35"></td></tr><tr>   
		        <td width="83" height="30" align="right" valign="top">
		        <font color="#FFFFFF" size="2"><label for="setor">
			Setor:   </label></font></td>   
			<td width="332" height="30" align="left" valign="top">   
			<select name="setor" size="1">        
			<option>Selecione um setor</option>
			[b]<option value="contato@xxxxxx.com.br">[/b]
			Transporte Escolar</option>
			</select>   </td></tr><tr>   
			<td width="83" height="99" align="right" valign="top">
			<font color="#FFFFFF" size="2"><label for="mensagem">
			Mensagem:   </label></font></td>   
			<td width="332" height="99" align="left" valign="top">
			<textarea name="mensagem" cols="38" rows="5" wrap="virtual"></textarea></td></tr><tr>   
			<td width="83" height="32"><input type="hidden" name="valida" value="enviar" /></td>   
		        <td width="332" height="32" align="center" valign="top">
		        <font face="Verdana">
			<input name="btenviar" type="submit" value="Enviar" class="menu" style="font-family: Verdana; font-size: 8pt" /></font></td></tr></table>
		</div>
	</form>

PHP:

 

<?php

/* VALIDA */

$valida = isset($_POST["valida"]) ? $_POST["valida"] : null;

if($valida == "enviar"){
/* RECEBE OS DADOS DO FORMULÁRIO */
$nome = $_POST["nome"];
$email = $_POST["email"];
$assunto = $_POST["assunto"];
$tel = $_POST["tel"];
$setor = $_POST["setor"];
$mensagem = $_POST["mensagem"];
                 
$msg  = "Nome: " .$nome."\n";
$msg .= "E-mail: ".$email."\n";
$msg .= "Assunto: ".$assunto."\n";
$msg .= "Fone: ".$tel."\n";
$msg .= "Setor: ".$setor."\n";
$msg .= "Mensagem: " .$mensagem."\n";

if(($nome!="") and ($assunto!="") and ($tel!="") and ($setor!="") and ($mensagem!="")){
   mail($setor,$assunto,$msg,"From:$email");
   $msguso = "<span class='destaque'>Mensagem enviada com sucesso!</span>";
}
else {
   $msguso = "<span class='destaque'> \" Nome, Assunto, Fone, Setor e Mensagem \" devem ser preenchidos!</span>";
}
}
?>

Minha pergunta é: Como eu faço para que, quando o usuário escolher uma determinada opção, o campo "setor" no email venha com o nome do setor ao invés do email ?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce pode usar o javascript abaixo para pegar o nome do setor e depois passa para um campo hidden e pega este compo no php

 

var combo = document.getElementByid(ID_DO_COMBO);
var setor = combo.options[combo.selectedIndex()].text;
// agora é so pegar o  a variavel setor e passar para um campo hidden

acho que é isso que voce quer

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oque acontece é o seguinte,

 

<option value="contato@xxxxxx.com.br"> Transporte Escolar</option>

 

quando enviado o form, oque você vai receber é oque está no value e não "transporte escolar"

 

caso queira enviar as 2 informaçoes faça assim:

 

<option value="contato@xxxxxx.com.br;Transporte Escolar">Transporte Escolar</option>

 

ai no php faça assim:

 

$arSetor = explode(";", $_POST["setor"]);
$email_setor = $arSetor[0];
$setor = $arSetor[1];

 

pronto, você recebe 2 informações sem ter que fazer muitos codigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mexicanox, obrigado pela dica, mas eu não sei fazer o que você falou não.. rsrsrs.. Então, eu tentei o que o nosso amigo falou.

 

Ficou da seguinte forma o que PHP:

 


<?php

/* VALIDA */

$valida = isset($_POST["valida"]) ? $_POST["valida"] : null;

if($valida == "enviar"){
/* RECEBE OS DADOS DO FORMULÁRIO */
$nome = $_POST["nome"];
$email = $_POST["email"];
$assunto = $_POST["assunto"];
$tel = $_POST["tel"];
$arSetor = explode(";", $_POST["setor"]);$email_setor = $arSetor[0];$setor = $arSetor[1];




$mensagem = $_POST["mensagem"];
                 
$msg  = "Nome: " .$nome."\n";
$msg .= "E-mail: ".$email."\n";
$msg .= "Assunto: ".$assunto."\n";
$msg .= "Fone: ".$tel."\n";
$msg .= "Setor: ".$setor."\n";
$msg .= "Mensagem: " .$mensagem."\n";

if(($nome!="") and ($assunto!="") and ($tel!="") and ($setor!="") and ($mensagem!="")){
   mail($setor,$assunto,$msg,"From:$email");                   <<<<<<<<<<<<<<<<<<<<<<<<< ESSA É A LINHA 28
   $msguso = "<span class='destaque'>Mensagem enviada com sucesso!</span>";
}
else {
   $msguso = "<span class='destaque'> \" Nome, Assunto, Fone, Setor e Mensagem \" devem ser preenchidos!</span>";
}
}
?>


Apresentou a seguinte mensagem de erro:

 

Warning: mail() [function.mail]: SMTP server response: 550 Requested action not taken: mailbox unavailable or not local in C:\Inetpub\vhosts\apatrj.com.br\httpdocs\contato.php on line 28

 

 

O que pode estar errado ?

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

A resposta do carlos a gomes cai bem pra voce cara, com o explode você vai dividir a string e pegar apenas o valor que voce necessita,,, se no php você nao for precisar do valor email é melhor mesmo usar dessa forma descrita por ele...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Tive que mudar algumas coisas no site. Eu continuo precisando da ajuda de vcs. Eu tentei aqui, mas não funcionou as trocas que fiz. O que eu quero fazer agora ? Eu quero colocar o email direto para ser enviado e não mais quando a pessoa selecionar o "setor". Tipo, eu preciso colocar em algum lugar do site do PHP o endereço de email para que ele pegue o formulario preenchido e envie diretamente para ele ? Se sim, aonde ?

 

Obrigado.

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.