sergio_jfj 0 Denunciar post Postado Agosto 11, 2008 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
leila•trupe 1 Denunciar post Postado Agosto 14, 2008 Acho que o problema está aqui: if (arguments.length === 0) { retire um sinal de "=", para comparar usa-se apenas 2. Compartilhar este post Link para o post Compartilhar em outros sites