Nittho Lima Postado Maio 9, 2009 Denunciar Share Postado Maio 9, 2009 Olá pessoal, estou com um pequeno problema no envio do meu form criado no flash 8.Preencho o formulário todo certinho, quando clico em enviar não limpa os dados inseridos e nem me dá nenhuma página de confirmação.Alguém pode me ajudar fazer com que apareceça uma página de confirmação?Segue código do flash (acoes.as)<CODE>System.useCodepage = true; // usar o formato Unicode, pra não haver problemas com o texto.// ========================= ações do formulário ================================================//// setando as variáveisvar_nome = "";var_telefone = "";var_email = "";var_empresa = "";var_mensagem = "";var var_status:String = "";//=====================// atribuindo a ordem de foco dos campos quando a tecla "Tab" for pressionadanome_txt.tabIndex = 1;telefone_txt.tabIndex = 2;email_txt.tabIndex = 3;empresa_txt.tabIndex = 4;mensagem_txt.tabIndex = 5;// criando função que valida// e envia os dados informados pelo usuáriofunction enviar() {if (var_nome.length <= 2) { var_status = "Por favor, preencha seu nome corretamente"; // se a variável tiver menos que dois digitos, alerte o usuário}else if (var_telefone.length <= 1) { var_status = "Por favor, preencha o telefone corretamente"; // se a variável tiver menos que dois digitos, alerte o usuário.}else if (var_email.length <= 8 or var_email.indexOf("@", 0) == -1 or var_email.indexOf(".", 0) == -1) { var_status = "Por favor, preencha seu email corretamente"; // se a variável tiver menos que dois digitos, alerte o usuário. // se não existir o caracter "@", nem o "." no meio do e-mail, alerte o usuário.}else if (var_empresa.length <= 4) { var_status = "Por favor, preencha o nome da empresa corretamente"; // se a variável tiver menos que dois digitos, alerte o usuário.}else if (var_mensagem.length <= 1) { var_status = "Por favor, preencha a mensagem corretamente"; // se a variável tiver menos que dois digitos, alerte o usuário.}// se os dados informados passarem pela validação, executar as linhas abaixo:else { var envia = new LoadVars(); // cria um objeto para enviar os dadosvar carrega = new LoadVars(); // cria um objeto para receber os dadosenvia.nome = nome_txt.text; // pegar os dados da variável var_nomeenvia.telefone = telefone_txt.text; // pegar os dados da variável var_telefoneenvia.email = email_txt.text; // pegar os dados da variável var_emailenvia.empresa = empresa_txt.text; // pegar os dados da variável var_empresaenvia.mensagem = mensagem_txt.text; // pegar os dados da variável var_mensagemenvia.sendAndLoad("http://www.mariziamaior.com.br/asp/email.asp", carrega, "POST"); // envia a mensagem através da função "sendAndLoad".nextScene(); }}enviar_btn.onRelease = function() { enviar();}limpar_btn.onRelease = function() { nome_txt.text = ""; telefone_txt.text = ""; email_txt.text = ""; empresa_txt.text = "" ; mensagem_txt.text = "";}</CODE>Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Maio 9, 2009 Denunciar Share Postado Maio 9, 2009 (editado) Ólá Nittho ^_^Bom primeiramente de acordo com seu código você nunca irá passar das verificações, pois suas variaveis "var_xxxx" referentes aos valores contidos nos campos de texto,não foram atribuidas;e também quando você clikou em enviar você não informou a sua função que ela devia limpar os campos...Vamos começar atribuindo seus campos para sua variável.ex: var_nome = nome_txt.text;Desde que ! O nome de INSTANCIA de seu campo de texto "nome" seja "nome_txt";se você quer limpar os campos faça o seguinte, economize código fazendo de "limpeza" uma função:function LimpaCampos(){ nome_txt.text = ""; telefone_txt.text = ""; email_txt.text = ""; empresa_txt.text = ""; mensagem_txt.text = ""; } Assim é so chamar no botao limpar e na sua função de enviar o seguinte " LimpaCampos();" E vossos campos serão limpos... Continuando nome_txt.text; // pegar os dados da variável var_nome Você não está pegando dados da variável var_nome, e sim pegando direto do campo de texto; Não sei como está seu arquivo ASP porém após enviar o e-mail ele deveria mandar para o flash de volta um dado contendo a resposta do servidor se foi enviado com Sucesso ou não, ou seja para você recber isso na sua variavel "carrega" isso tem de estar no seu arquivo ASP; E inclusive precisa adicionar uma verificação do valor contido na variavel "carrega" Como por ex: if(carrega!="success") //Se diferente de Sucesso { //Alguma ação caso a mensagem não consiga ser enviada } else { //Alguma ação caso ela tenha sido enviada }Bom é issoEspero ter esclarecido algo;AbraçosPooh Editado Maio 9, 2009 por Pooh Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nittho Lima Postado Maio 9, 2009 Autor Denunciar Share Postado Maio 9, 2009 Em primeiro Lugar obrigado Pooh, pela atenção.Não tenho muita intimidade com esses códigos.A mensagem está sendo enviada e estou recebendo em meu email normalmente, e botão limpar está limpando os dados do form tb sem problema. A única coisa é limpar os campos ao enviar e a mensagem de confirmação.Meu código enviar está assim:enviar_btn.onRelease = function() { enviar(); Onde entra o código "LimpaCampos()"? E o meu código ASP está assim.. <% Dim Mailer Dim msgTxt Dim subject Dim nome Dim email Dim cidade Dim estado Dim mensagem nome = request.form("nome") telefone = request.form("telefone") email = request.form("email") empresa = request.form("empresa") mensagem = request.form("mensagem") msgTxt = "Olá, mensagem do site:<br>" msgTxt = msgTxt & "Nome: " & nome & "<br>" msgTxt = msgTxt & "Telefone: " & telefone & "<br>" msgTxt = msgTxt & "E-mail: " & email & "<br>" msgTxt = msgTxt & "Empresa: " & empresa & "<br>" msgTxt = msgTxt & "Mensagem: " & mensagem '*************************************************** Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = nome Mailer.FromAddress= email Mailer.RemoteHost = "LOCALHOST" Mailer.AddRecipient "Nittho", "nittholima@terra.com.br" Mailer.ContentType = "text/html" ' formatação html Mailer.Subject = "Email recebido" Mailer.BodyText = msgTxt Mailer.SendMail Set Mailer = nothing %>Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Maio 9, 2009 Denunciar Share Postado Maio 9, 2009 (editado) Olá novamente ^^O "LimpaCampos()" poderia ser executado após serem atribuidos os valores às variáveis;Dentro de "enviar()"ex:... envia.nome = nome_txt.text; // pegar os dados da variável var_nome envia.telefone = telefone_txt.text; // pegar os dados da variável var_telefone envia.email = email_txt.text; // pegar os dados da variável var_email envia.empresa = empresa_txt.text; // pegar os dados da variável var_empresa envia.mensagem = mensagem_txt.text; // pegar os dados da variável var_mensagem envia.sendAndLoad("http://www.mariziamaior.com.br/asp/email.asp", carrega, "POST"); // envia a mensagem através da função "sendAndLoad". //AQUI !!// ... Imagino que ainde está o "//AQUI !!// " possa servir, pois ali você já enviou todos os valores para o ASP e portanto não precisa mais deles ^^ Agora já sobre o asp lhe responder, o seu script não possui; temos de adicionar um "response.write" ex: ... Mailer.SendMail Set Mailer = nothing response.write "&carrega=success" 'AQUI !! Então no seu flash você deve fazer a verificação para se carrega possui então o valor "ok" ou não: if(carrega!="success"){ //Falhou no envio } else { //Envio bem sucedido }Bom imagino ser apenas isso.Qualquer duvida posta novamente ^_^AbraçosPooh Editado Maio 9, 2009 por Pooh Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nittho Lima Postado Maio 11, 2009 Autor Denunciar Share Postado Maio 11, 2009 Pooh, mais uma vez obrigado,Ao enviar está limpando os campos ok,Quando o formulário é enviado o asp envia a resposta e no flash ele pul a para á próxima sena até aí tudo bem, coloco uma mensagem de confirmação e ok.Mais se tiver algum problema no envio mesmo assim os asp envia a mesma resposta, como se a mensagem tivesse sido enviada corretamente.Fiz o teste em dois provedores, em um deles a mensagem chegou normalmente no email mais quando testei em outro provedor a mensagem não chegou e nem recebi mensagem de erro.Espero que possa me ajudar mais uma vez.Agradeço antecipadamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Maio 12, 2009 Denunciar Share Postado Maio 12, 2009 Claramente Nitho ^_^É porque colocamos para o asp apenas dizer se ele "tentou" evniar o e-mail, apra verificar se ele realmente foi enviado o ASP tem de fazer isso;Usaremos:... Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = nome Mailer.FromAddress= email Mailer.RemoteHost = "LOCALHOST" Mailer.AddRecipient "Nittho", "nittholima@terra.com.br" Mailer.ContentType = "text/html" ' formatação html Mailer.Subject = "Email recebido" Mailer.BodyText = msgTxt Mailer.SendMail if Mailer.SendMail then Response.Write "&carrega=success" else Response.Write "&carrega=falhou" Response.Write Mailer.Response 'Aqui você obtem o erro retornado se quiser end if set Mailer = NothingAssim ele verifica se Mailer.SendMail deu certo ou não e te retorna Success ou falhousimples ^^AbraçosPooh Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Nittho Lima
Olá pessoal, estou com um pequeno problema no envio do meu form criado no flash 8.
Preencho o formulário todo certinho, quando clico em enviar não limpa os dados inseridos e nem me dá nenhuma página de confirmação.
Alguém pode me ajudar fazer com que apareceça uma página de confirmação?
Segue código do flash (acoes.as)
<CODE>
System.useCodepage = true; // usar o formato Unicode, pra não haver problemas com o texto.
// ========================= ações do formulário ================================================//
// setando as variáveis
var_nome = "";
var_telefone = "";
var_email = "";
var_empresa = "";
var_mensagem = "";
var var_status:String = "";
//=====================
// atribuindo a ordem de foco dos campos quando a tecla "Tab" for pressionada
nome_txt.tabIndex = 1;
telefone_txt.tabIndex = 2;
email_txt.tabIndex = 3;
empresa_txt.tabIndex = 4;
mensagem_txt.tabIndex = 5;
// criando função que valida
// e envia os dados informados pelo usuário
function enviar() {
if (var_nome.length <= 2) {
var_status = "Por favor, preencha seu nome corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário
}
else if (var_telefone.length <= 1) {
var_status = "Por favor, preencha o telefone corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
}
else if (var_email.length <= 8 or var_email.indexOf("@", 0) == -1 or var_email.indexOf(".", 0) == -1) {
var_status = "Por favor, preencha seu email corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
// se não existir o caracter "@", nem o "." no meio do e-mail, alerte o usuário.
}
else if (var_empresa.length <= 4) {
var_status = "Por favor, preencha o nome da empresa corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
}
else if (var_mensagem.length <= 1) {
var_status = "Por favor, preencha a mensagem corretamente";
// se a variável tiver menos que dois digitos, alerte o usuário.
}
// se os dados informados passarem pela validação, executar as linhas abaixo:
else {
var envia = new LoadVars(); // cria um objeto para enviar os dados
var carrega = new LoadVars(); // cria um objeto para receber os dados
envia.nome = nome_txt.text; // pegar os dados da variável var_nome
envia.telefone = telefone_txt.text; // pegar os dados da variável var_telefone
envia.email = email_txt.text; // pegar os dados da variável var_email
envia.empresa = empresa_txt.text; // pegar os dados da variável var_empresa
envia.mensagem = mensagem_txt.text; // pegar os dados da variável var_mensagem
envia.sendAndLoad("http://www.mariziamaior.com.br/asp/email.asp", carrega, "POST"); // envia a mensagem através da função "sendAndLoad".
nextScene();
}
}
enviar_btn.onRelease = function() {
enviar();
}
limpar_btn.onRelease = function() {
nome_txt.text = "";
telefone_txt.text = "";
email_txt.text = "";
empresa_txt.text = "" ;
mensagem_txt.text = "";
}
</CODE>
Obrigado!
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.