Ir para conteúdo

POWERED BY:

Arquivado

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

sergio_jfj

Formulário de email

Recommended Posts

Olá galera, estou com um pequeno problema e espero que alguem me ajude.

 

Fiz um tutorial do imasters para envio de formulario de e-mail com componentes no flash, porém, toda vez que tento enviar a mensagem da erro. Não estou conseguindo passar os parâmetros para a página de envio de email (enviar.php). Segue abaixo o código da página em flash.

 

 

CODE

import mx.controls.*;

import mx.transitions.Tween;

import mx.transitions.easing.*;

with (_global.style) {

setStyle("fontFamily", "calibri");

setStyle("fontSize", 11);

setStyle("fontColor", 0x000000);

setStyle("themeColor", "0xa9c780");

setStyle("openDuration", 1000);

setStyle("openEasing", Elastic.easeOut);

}

focusManager.enabledDefaultPushButton = true;

focusManager.defaultPushButton = btnEnviar;

focusManager.setFocus(textNome);

textNome.setStyle("backgroundColor", 0xb1d87d);

 

labelNome.text = "Nome:";

labelEmail.text = "Email:";

labelTel.text = "Telefone:";

labelServico.text = "Servico:";

labelMsg.text = "Observações:";

btnApagar.label = "Apagar";

btnEnviar.label = "Enviar";

 

//Índice de tabulação dos componentes(tecla TAB)

textNome.tabIndex = 1;

textEmail.tabIndex = 2;

textTel.tabIndex = 3;

comboServico.tabIndex = 4;

textMsg.tabIndex = 5;

 

//Contagem máxima de itens do combo, antes que seja gerada a barra de rolagem

comboServico.rowCount = 4;

 

//Restrição para o campo telefone, somente números

textTel.restrict = "0-9";

 

//Populando o combo de Servicos

var aServicos:Array = new Array();

aServicos[0] = {nome:"Selecione"};

aServicos[1] = {nome:"label01"};

aServicos[2] = {nome:"label02"};

aServicos[3] = {nome:"label03"};

aServicos[4] = {nome:"label04"};

aServicos[5] = {nome:"label05"};

aServicos[6] = {nome:"label06"};

aServicos[7] = {nome:"label07"};

aServicos[7] = {nome:"label08"};

 

//A propriedade dataProvider armazena todos os dados do componente ComboBox, essa propriedade armazena um array de objetos

comboServico.dataProvider = aServicos;

//Alterando a propriedade label do componente para nome, propriedade do objeto contido em cada índice do array

comboServico.labelField = "nome";

//Alterando as cores de background ao focar no campo e ao desfocar

var oListener:Object = new Object();

oListener.focusIn = function(obj:Object):Void {

obj.target.setStyle("backgroundColor", 0xb1d87d);

};

oListener.focusOut = function(obj:Object):Void {

obj.target.setStyle("backgroundColor", 0xFFFFFF);

};

 

//Cadastrando o listener somente aos objetos textuais

for (var i in this) {

var isText:Boolean = (this instanceof mx.controls.TextInput || this instanceof mx.controls.TextArea);

if (isText) {

this.addEventListener("focusIn", oListener);

this.addEventListener("focusOut", oListener);

}

}

 

//Função para apagar os campos, apaga somente a propriedade text dos objetos textuas, não inclui o componente Label

function clearTextFields():Void {

for (var i in this) {

var isText:Boolean = (this instanceof mx.controls.TextInput || this instanceof mx.controls.TextArea);

if (isText) {

this.text = "";

}

}

}

 

//Função para validar os campos, todos devem conter ao menos um caractere, o campo email deve conter "@" e ".", para que seja caracterizado como válido.

//Caso os dados não sejam válidos conforme condição, chamamos a função mensagemErro(), que chama um componente Alert, que está na Libray, exibindo nesta janela uma string passada como argumento da função

//Caso os dados sejam todos válidos, chamamos a função sendMsg() e passamos a url do arquivo de servidor que tratará da resposta

function valida():Void {

if (!textNome.text.length) {

mensagemErro("Preencha o nome!");

} else if (!textEmail.text.length) {

mensagemErro("Preencha o email!");

} else if (textEmail.text.indexOf("@") == -1 || textEmail.text.indexOf(".") == -1) {

mensagemErro("Preencha o email corretamente!");

} else if (!textTel.text.length) {

mensagemErro("Preencha o telefone!");

} else if (comboServico.selectedIndex<1) {

mensagemErro("Selecione a Servico!");

} else if (!textMsg.text.length) {

mensagemErro("Preencha o comentário!");

} else {

sendMsg("enviar.php");

}

}

 

//Função para a mensagem, pede ao menos um parametro, ou argumento, e exibe a mensagem no componente Alert

function mensagemErro(msg:String):Void {

if (arguments.length === 0) {

return;

}

var alerta:Object = Alert.show(msg, "Aviso", Alert.OK, null);

}

//Função que envia os dados para o servidor, pede um argumento de url, local para onde enviará as variáveis do objeto LoadVars.

//Cada propriedade declarada no objeto enviaParaServidor, é uma variável que deve estar presente na linguagem de servidor, como, por exemplo, PHP, Asp.net, ColdFusion, Jsp, etc.

function sendMsg(url:String):Void {

if (arguments.length === 0) {

return;

}

var enviaParaServidor:LoadVars = new LoadVars();

enviaParaServidor.nome = textNome.text;

enviaParaServidor.email = textEmail.text;

enviaParaServidor.telefone = textTel.text;

enviaParaServidor.Servico = comboServico.selectedItem.label;

enviaParaServidor.mensagem = textMsg.text;

enviaParaServidor.sendAndLoad(url, enviaParaServidor, "POST");

 

//Ao receber um dado do arquivo de servidor, ele verificará se está recebendo uma string "ok", por exemplo, caso seja ok, limpamos os campos de texto e mandamos o ComboBox para o índice 0 (selecione)

//Caso a mensagem contenha a string "erro", chamamos pelo alert e avisamos o usuário sobre o erro, caso contenha um

//Se receber undefined é porque a mensagem não chegou ao arquivo de servidor, normalmente o nome do arquivo está errado

enviaParaServidor.onData = function(dado:String):Void {

switch (dado) {

case "ok" :

mensagemErro("Enviado com sucesso!");

clearTextFields();

comboServico.selectedIndex = 0;

break;

case "erro" :

mensagemErro("Algum erro qualquer(substitua por algo...)");

break;

case undefined :

mensagemErro("Erro ao tentar enviar!");

break;

}

};

}

//Cadastrando os listeners para os botões, caso o nome do botão seja btnApagar, apaga os campos e manda o comboBox para o índice 0, caso seja btnEnviar, chama a função valida()

oListener.click = function(obj:Object):Void {

if (obj.target == btnApagar) {

clearTextFields();

comboServico.selectedIndex = 0;

} else if (obj.target == btnEnviar) {

valida();

}

};

btnApagar.addEventListener("click", oListener);

btnEnviar.addEventListener("click", oListener);

 

Agradeço antecipadamente a quem puder me ajudar :blink:

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.