Jump to content


Photo

Menu De Salto, Como Fazer Um If Num Formulario Htm/php.


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

#1 DarkWolf

DarkWolf

    Altemir Rocha

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Capão da Canoa - RS
  • Interesses:DW, Photoshop, php, Flash, corel, fireworks, 3d studio.

Posted 21/12/2007, 20:07

Daí galera, seguinte,

tenho um form de email que faço em htm e ele envia para o php seguindo um config.php.
Bom, preciso coloca um Menu de salto para que caso vc escolha entrar em contato com a diretoria, o email seja enviado para diretoria@blabla.com.br. Se escolher administração o email vai para administracao@blabla.com.br

boom, aqui tá o form do menu, é um form básico, só que não sei como ligar ele a uma variável para fazer um if e enviar para o email que o visitante escolheu. Tentei de algumas formas mas nao consegui, entao voltei ao zero...

<select name="menu1" class="maiusculasvermelho" onChange="MM_jumpMenu('parent',this,0)">
<option value="#-">Selecione uma op&ccedil;&atilde;o</option>
<option value="#-">Conv&ecirc;nios</option>
<option value="#-">Administradora</option>
<option value="#-">Seguros</option>
<option value="#-">Voip</option>
<option value="#-">Ouvidoria</option>
<option value="#-">Diretoria</option>
</select>


Alguém pode me dar uns toques?


aaah se quiserem ver o formulário está em www.idealcard.com.br/new/contato1.htm

Vlww

Edição feita por: DarkWolf, 21/12/2007, 20:08.

AR - Studio Design


Altemir Rocha - WEB busines :)
MSN - altemirng@hotmail.com

#2 Alex Hiroshi

Alex Hiroshi

    Super Veterano

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

Posted 21/12/2007, 22:20

Coloca o e-mail no value de cada option, depois é só pegar o valor normalmente, como se fosse um campo text.
<option value="administradora@blabla.com.br">Administradora</option>
Se não quiser colocar o e-mail, coloca qualquer outra coisa e faz a verificação depois.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#3 overflow

overflow

    Novato no fórum

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

Posted 22/12/2007, 03:38

Quando você não colocar o value em uma option do select, o valor enviado será o titulo dessa option.
Então se você deixar apenas assim:

[codebox]<select name="menu1" class="maiusculasvermelho" onChange="MM_jumpMenu('parent',this,0)">
<option>Selecione uma opção</option>
<option>Convênios</option>
<option>Administradora</option>
<option>Seguros</option>
<option>Voip</option>
<option>Ouvidoria</option>
<option>Diretoria</option>
</select>[/codebox]

Os valores enviados serão "Selecione uma opção","Convênios" e por aí vai.

Mas isso serve mais como aprendizado mesmo, porque nesse caso o melhor é colocar um value que você possa discriminar no action desse formulário.

#4 DarkWolf

DarkWolf

    Altemir Rocha

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Capão da Canoa - RS
  • Interesses:DW, Photoshop, php, Flash, corel, fireworks, 3d studio.

Posted 22/12/2007, 16:14

Isto overflow, só que eu preciso saber como lá no action eu identifico.

Outra coisa, se eu colocar <option value="desenvolvimento@idealcard.com.br">Convênios</option> quando eu seleciono ele já executa e leva pruma página que não existe, lógico ehehhehe...

Então qual o comando que vou usar no action pra identificar e dar o valor para o envio?
AR - Studio Design


Altemir Rocha - WEB busines :)
MSN - altemirng@hotmail.com

#5 Alex Hiroshi

Alex Hiroshi

    Super Veterano

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

Posted 22/12/2007, 22:32

Tira o onchange do select.
onChange="MM_jumpMenu('parent',this,0)"
Pra pegar no action o valor, é só pegar pelo nome do select que você definiu, no caso name="menu1".
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#6 overflow

overflow

    Novato no fórum

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

Posted 23/12/2007, 02:44

aí fica a seu critério.

voce pode dar o value de cada um como "1", "2", "3" e assim por diante, e no PHP definir por exemplo:


[codebox]
$valor = $_POST['menu1'];

switch ($valor) {
case 1:
$email = 'email@dominio.com';
brek;

case 2:
$email = 'email2@dominio.com';
break;

.
.
.
.

}
[/codebox]

e por aí vai...
existem muitas maneiras de fazer isso, mostrei ali encima uma simples. depois daquilo seria só seguir com seu codigo normalmente sendo o email = $email

é isso aí, espero ter ajudado

#7 DarkWolf

DarkWolf

    Altemir Rocha

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Capão da Canoa - RS
  • Interesses:DW, Photoshop, php, Flash, corel, fireworks, 3d studio.

Posted 24/12/2007, 09:53

Dae galera, na verdade até um ponto funcionou, mas, nao completamente, agora nao está enviando o e-mail, aparece a mensagem de enviado e tal, mas nao vai pra lugar algum,

saca como ficou o php.

include("config_email.php");
$error 		= 0;
$enviado 	= 0;
$setor = $_POST['emquem'];
	switch ($setor)
	{
	case dois:	$setor = 'altemir.rocha@gmail.com';break; 
	case tres:	$setor = 'desenvolvimento@idealcard.com.br';break;
	case quatro:  $setor = 'altemirng@hotmail.com';break;
	}
if ($_POST["enviar"]){
	$nome	   = $_POST["nome"];
	$cidade	 = $_POST["cidade"];
	$email	  = $_POST["email"];
	$telefone 	= $_POST["telefone"];
	$id 	= $_POST["id"];
	$mensagem 	= $_POST["mensagem"];

	if($nome == ""){
		$error = 1;
	}else if($cidade == ""){
		$error = 1;
	}else if($email == ""){
		$error = 1;
	}else if($telefone == ""){
		$error = 1;
	}else if($id == ""){
		$error = 1;
	}else if($mensagem == ""){
		$error = 1;
	}else{
		$error = 0;
	}

	if($error == 0){//se não ocorreu nenhum erro
		//prepara a msg
		$mensagem		   = wordwrap("$mensagem",60,"<br>",1);
		$mensagem 			= ereg_replace(" ", "&nbsp;", $mensagem);
		$mensagem 			= nl2br($mensagem);
		//mensagem que admin receberá por e-mail
		$mensagem_email = "
		$nome_cliente. $nome entrou em contato via site.
		email: $setor
		Confira os dados:
		Nome:	 $nome
		Telefone: $telefone
		E-mail:   $email
		Id Associado: $id
		Mensagem:   $mensagem;
		";		
		if(mail("email_destino""$assunto_email","$mensagem_email",$headers)){
			$enviado = 1;
		}else{
			$enviado = 0;
		}
	}
}

if($enviado == 1){
?>

vllwww mas ainda nao funfou = /

Edição feita por: Alex Hiroshi, 24/12/2007, 19:07.

AR - Studio Design


Altemir Rocha - WEB busines :)
MSN - altemirng@hotmail.com

#8 Alex Hiroshi

Alex Hiroshi

    Super Veterano

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

Posted 24/12/2007, 10:30

Erros de PHP, não de HTML. Se quiser pode abrir um tópico na seção de PHP ou, se preferir, eu movo pra lá.

dois, tres e quatro, nos case do swiitch, são strings, certo? Sendo assim, devem estar entre aspas. 'email_destino', no mail(), é uma variável, certo? Então deveria estar com o $.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#9 DarkWolf

DarkWolf

    Altemir Rocha

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Capão da Canoa - RS
  • Interesses:DW, Photoshop, php, Flash, corel, fireworks, 3d studio.

Posted 24/12/2007, 13:23

Opa! daí alex, pois é acabamos falando de PHP, mas a duvida começou no htm eheheh

Por gentileza, pode mover pra php.

Bom, sobre o problema, é que tenho um config.php que tem essa linha de código.

<?php
$nome_cliente   = "emquem";
$assunto_email = "Olá emquem. $nome entrou em contato via site";
$email_destino = "$setor";
$email_from	 = "$nome";

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "from:$nome";
?>

entao quer dizer, lá no php anterior é assim

include("config_email.php");$error 		= 0;$enviado 	= 0;$setor = $_POST['emquem'];	switch ($setor)	{	case dois:    $email1 = '$altemir.rocha@gmail.com';break; 	case tres:    $email1 = '$desenvolvimento@idealcard.com.br';break;	case quatro:  $email1 = '$altemirng@hotmail.com';break;	}if ($_POST["enviar"]){    $nome       = $_POST["nome"];	$cidade     = $_POST["cidade"];	$email      = $_POST["email"];	$telefone 	= $_POST["telefone"];	$id 	= $_POST["id"];	$mensagem 	= $_POST["mensagem"];	if($nome == ""){		$error = 1;	}else if($cidade == ""){		$error = 1;	}else if($email == ""){		$error = 1;	}else if($telefone == ""){		$error = 1;	}else if($id == ""){		$error = 1;	}else if($mensagem == ""){		$error = 1;	}else{		$error = 0;	}	if($error == 0){//se não ocorreu nenhum erro        //prepara a msg		$mensagem           = wordwrap("$mensagem",60,"<br>",1);		$mensagem 			= ereg_replace(" ", "&nbsp;", $mensagem);		$mensagem 			= nl2br($mensagem);		//mensagem que admin receberá por e-mail		$mensagem_email = "		$nome_cliente. $nome entrou em contato via site.		email: $setor		Confira os dados:		Nome:     $nome		Telefone: $telefone		E-mail:   $email		Id Associado: $id		Mensagem:   $mensagem;		";			    if(mail("$email_destino","$assunto_email","$mensagem_email",$headers)){			$enviado = 1;		}else{		    $enviado = 0;	    }	}}if($enviado == 1){?>

bom, já deu pra ter uma noção de que eu nao tenho muita prática com php, se puderem me dar uma explicada. Ficarei muito grato.!!!

vlw galera,

Edição feita por: Alex Hiroshi, 24/12/2007, 19:08.

AR - Studio Design


Altemir Rocha - WEB busines :)
MSN - altemirng@hotmail.com

#10 overflow

overflow

    Novato no fórum

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

Posted 25/12/2007, 02:32

ae amigo,
não conseguir achar o erro do seu código, até pq nem sou muito bom em php e nunca fiz um script de envio de email xD

mas se quer uma ideia pra dar uma melhoradinha aí, até pra ficar mais simples o codigo, aqui vai uma dica:

substituir

[codebox]if($nome == ""){
$error = 1;
}else if($cidade == ""){
$error = 1;
}else if($email == ""){
$error = 1;
}else if($telefone == ""){
$error = 1;
}else if($id == ""){
$error = 1;
}else if($mensagem == ""){
$error = 1;
}else{
$error = 0;
}[/codebox]

por

[codebox]
switch (NULL) {

case $nome:
case $cidade:
case $email:
case $telefone:
case $id:
case $mensagem:
$error = 1;
break;

default:
$error = 0
break;

}[/codebox]

nada demais, só uma ideia pra fazer um codigo mais limpo...
(lembrando que eu nao testei :assobio:
entao pode ter algum errinho

#11 Alex Hiroshi

Alex Hiroshi

    Super Veterano

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

Posted 25/12/2007, 06:58

Procure usar os BBCODE do fórum para postar códigos, fica melhor para ler o post.

Leia sobre o que você está usando no código:
http://pt.php.net/switch
http://pt.php.net/ma....predefined.php
http://pt.php.net/ma...nction.mail.php
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador




0 user(s) are reading this topic

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

IPB Skin By Virteq