LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Flash

Feed da seção Flash

Newsletter de Flash

Patrocínio:

Segunda-feira, 02/09/2002 - 01:59 - Por Dauton Janota
Seções relacionadas:

Formulário Flash + PHP

Fala ae Pessoal!

Após colocar um formulário em meu site, muitos colegas me perguntaram como funcionava e mencionaram da possibilidade de fazer um tutorial a respeito.

Bom aqui estou, mostrarei como criar um *.swf que capta informações de caixas de texto, envia o formulário para o administrador e responde automaticamente para o cliente.

Vale frisar que para o funcionamento deste formulário é necessário que o servidor local dê suporte para arquivos *.php.

Começaremos pelo arquivo do Flash:

Criaremos tudo dentro de um movie clip instanciado de "email" (sem áspas), para que vocês possam usá-lo em outras ocasiões utilizando apenas a cópia do movie clip.

1. Crie um movie clip e o instancie de "email" (sem aspas), o movie clip todo tem 123 quadros.

Este movie clip contém seis camadas.

botãoTAB
ações
nomenosquadros
avisos
botões
caixadetexto

botãoTAB:

Crie um botão e coloque-o fora do palco. Coloque as seguintes linhas de actionscript nele:

on (keyPress "<Tab>") {
if (Selection.getFocus() == null) {
Selection.setFocus("_level0.email.inputNome");
} else if (Selection.getFocus() == "_level0.email.inputMensagem") {
Selection.setFocus("_level0.email.inputNome");
} else if (Selection.getFocus() == "_level0.email.inputTel") {
Selection.setFocus("_level0.email.inputMensagem");
} else if (Selection.getFocus() == "_level0.email.inputCidade") {
Selection.setFocus("_level0.email.inputEstado");
} else if (Selection.getFocus() == "_level0.email.inputEmail") {
Selection.setFocus("_level0.email.inputTel");
} else if (Selection.getFocus() == "_level0.email.inputEstado") {
Selection.setFocus("_level0.email.inputEmail");
} else if (Selection.getFocus() == "_level0.email.inputNome") {
Selection.setFocus("_level0.email.inputCidade");
}
}

Este código seta a tecla TAB para mover o cursor para o próximo campo.

ações:

No primeiro quadro insira stop();

No quadro 55, crie um quadro-chave em branco e coloque a ação:

gotoAndStop("start"); 

No quadro 56, crie outro quadro-chave em branco e insira:

verifica = 0;

No quadro 72 coloque:

if (verifica == 1) {
gotoAndPlay(57);
} else {
gotoAndPlay("valido");
}

No quadro 123 coloque:

inputNome = "";
inputCidade = "";
inputEstado = "";
inputEmail = "";
inputTel = "";
inputMensagem = "";
_root.email.callback.gotoAndStop(1);
gotoAndStop("start");

nomenosquadros:

No primeiro quadro, selecione-o e abra a caixa de propriedades.

Nomeie o quadro de "start" - sem áspas.

No quinto quadro, nomeie "invalido" - idem.

No 57º, nomeie "verifica" - idem. E insira uma imgem no palco de "verificando dados", por exemplo.

No 73º, nomeie "valido" - idem.

avisos:

Do 5º ao 55º coloque uma imagem de erro indicando a falta no preenchimento dos campos obrigatórios.

No 73º coloque outra imagem, desta vez, agradecendo o cliente pelo preenchimento. Afinal de contas é um saco ficar preenchendo formulários né? =)

botões:

Crie dois botões - Enviar e Limpar

No botão Enviar insira:

on (release) {
if (inputNome ne "" and inputEmail ne "" and inputMensagem ne "") {
loadVariablesNum("email.php", 0, "POST");
gotoAndPlay("verifica");
} else {
gotoAndPlay("invalido");
}
}

Neste caso estamos verificando se os campos obrigatórios (no caso - nome, email e mensagem) mencionados foram preenchidos, caso contrário o filme é encaminhado para o frame "invalido".

No botão Limpar insira:

on (release) {
inputNome = "";
inputCidade = "";
inputEstado = "";
inputEmail = "";
inputTel = "";
inputMensagem = "";
_root.email.callback.gotoAndStop(1);
}

Aqui, estaremos fazendo com que as caixas de texto tenham seus campos limpos ou esvaziados.

caixadetexto:

Insira 8 caixas de texto no modo input text onde duas delas, com as variáveis setadas de inputCallback (aqui, veremos logo à frente, um botão de escolha que usará esta variável) e action estejam fora do palco.

As outras seis caixas de texto e suas variáveis são:

inputNome;

inputCidade;

inputEstado;

inputEmail;

inputTel;

inputMensagem.

Agora, nesta mesma camada, crie um movie clip e o instancie de "callback" (sem áspas). Este mc possui duas camadas e dois quadros.

Na primeira camada e primeiro quadro insira a ação stop();

Na segunda camada e primeiro quadro, crie um botão no estado vazio (imagem sem preenchimento) e coloque a seguinte ação nele:

on (release) {
nextFrame();
_root.email.inputCallback = "yes";
}

Isto faz com que ao clicá-lo a mensagem "yes" aparecerá na caixa de texto situada fora do palco com a variável inputCallback e moverá o filme para o próximo quadro;

Ainda na segunda camada mas no 2º quadro, crie outro botão no estado cheio (com imagem preenchendo-o) e insira as seguintes linhas de actionscript:

on (release) {
prevFrame();
_root.email.inputCallback = "no";
}

Aqui, estaremos enviando para a variável inputCallback o valor "no" - que seria como se desmarcássemos a opção de "urgência" de resposta, por exemplo. No meu formulário serviu para que os internautas me deixassem saber se havia interesse de serem comunicados sobre o lançamento de meu livro.

No flash, terminamos. Partiremos agora para a criação do arquivo email.php:

Abra o bloco de notas e insira:

<?

$cabecalho = "From: Seu nome <seu@email.com.br> ";
// Seu email aqui
$emailadmin = "seu@email.com.br";

// seu site
$siteadmin ="http://www.seusite.com.br";

// O nome da companhia
$nomesite = ".Seu nome";

// pega a data do servidor
$date = date("m/d/Y H:i:s");

// Pega o IP cliente - este aqui era pra ser segredo! hehehe
if ($REMOTE_ADDR == "") $ip = "no ip";
else $ip = getHostByAddr($REMOTE_ADDR);

//Processa e envia as informações coletadas no flash para o seu email

//IF ($action != "")
//{
$mens .= "Opinião sobre conteúdo do livro

";
$mens .= "Nome: $inputNome
";
$mens .= "Cidade: $inputCidade
";
$mens .= "Estado: $inputEstado
";
$mens .= "Email: $inputEmail
";
$mens .= "Telefone: $inputTel
";
$mens .= "Saber sobre o lançamento? : $inputCallback
";
$mens .= "Mensagem: $inputMensagem
";
$mens .= "------------------------------
";
$mens .= "Informações:
";
$mens .= "Usando: $HTTP_USER_AGENT
";
$mens .= "Hostname: $ip
";
$mens .= "Endereço de IP: $REMOTE_ADDR
";
$mens .= "Data/Hora: $date
";
mail("$emailadmin","Aqui o assunto do formulário","$mens","$cabecalho");
echo "&verifica=1";

//Aqui envia um email de confirmação para o usuário
mail("$inputEmail","Obrigado por visitar $nomesite","NONONonONONonoNONonon n ono non ononon onono nono no nonon on","$cabecalho");

//Confirmação que o flash recebe
$sendresult = "Done!";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);

// echo "$send_answer";

//}

?>

Salve-o como email.php e pronto! Temos um formulário que envia mensagens e responde automaticamente para o usuário!

=)

Olhem como funciona e aproveitem deixando uma opinião. Tão logo estiver pronto, o iMasters estará sorteando algumas cópias do livro!

Espero ter ajudado a muitos que procuram este resultado!

Até a próxima coluna!

Etam nenê!

Todos os artigos de Dauton Janota

4 comentários publicados

  • 1. ola dalton gostaria de saber sobre seu livro vc naum me responde

    Segunda-feira, 18/04/2005, por diego braga

    ola... fiz o formulario passo a passo... mas naum funfou.. dae eu substitui as variaveis dos campos de texto (inves de inputNome coloquei soh Nome0 no script mude de $inputNome para $nome... dae funcionou (quase) o email foi enviado mas naum trouxe conssigo as variaveis ... ou seja o email veio todo certinho mas o q o usuario escreve naum aparece no email..... muito obrigado0.... e mermaum... manda informacoes sobre seu livro cara ... tou interessado!

    Responder comentário
  • 2. segui a risca fiz de tudo

    Sábado, 08/04/2006, por mauricio

    segui a risca fiz de tudo quase fiz macumba e essa coisa não funciona
    perdi 2 horas tentando e nada nem na demostração ai da pag aparece movie not loaded

    Responder comentário
  • 3. Limpar não funciona

    Terça-feira, 11/04/2006, por Eric Candido

    A explicalção até a parte dos botões está bem clara depois é que fica umpouco confuso. Ex se o botão do estado vazio (imagem sem preenchimento) este fica aonde? ele ficou invisível ou seja sem preenchimento, como será clicado?
    O resultado é que o botão limpar não funciona.
    Quem puder explicar melhor esta parte eu agradeço. Obrigado!

    Responder comentário
  • 4. Complicadinho ein Dauton

    Quarta-feira, 20/09/2006, por Diego Nicotari Trevisan

    O Script Php esquece ... tive que fazer varias auterações para que o e-mail fosse enviado coretamente.
    <?php
    // Informações Empresa
    $cabecalho = "From: TEXTO CAMPO DE \n";
    $para = "seu_email@mail.com";
    $siteadmin = "seu_site";
    $nomesite = "Nome do Site";
    $assunto = 'Contato Site';

    //Processa informações usuario - Flash

    $msg = array($inputNome, $inputEmail, $inputTel, $inputMensagem);

    mail($para, $assunto, join("\n", $msg), $cabecalho);

    // Envia Confirmação de envio.
    $assunto_ret = "Obrigado por visitar nosso site.";
    $msg_ret = "Obrigado por visitar o $siteadmin, estaremos dando um retorno em breve.";
    mail ($inputEmail, $assunto_ret, $msg_ret, $cabecalho);

    //Confirmaçao para o Flash
    $sendresult = "Done!";
    $send_answer = "answer=";
    $send_answer .= rawurlencode($sendresult);

    echo "$send_answer";
    ?>


    e a função da tecla TAB nada nesse mundo consegui resolver, se alguem conseguir a soluçao Por Favor.

    Muito Bom o Conteudo e a Didadica do Livro por sinal ... so algumas correçoeszinhas necesarias.

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Dauton Janota é desenvolvedor de projetos avançados em Flash MX e autor dos livros "Flash Action Script MX - Documentado e Não-documentado" e "Flash animado - Técnicas avançadas de design e animações".


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.