Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário flash + Asp


Nittho Lima

Pergunta

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

  • 0

Ó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 é isso

Espero ter esclarecido algo;

Abraços

Pooh

Editado por Pooh
Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0

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ços

Pooh

Editado por Pooh
Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 = Nothing

Assim ele verifica se Mailer.SendMail deu certo ou não e te retorna Success ou falhou

simples ^^

Abraços

Pooh

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...