<pedrocorreia.net ⁄>
corner
<mySearch ⁄> <mySearch ⁄>

corner
 
corner
<mySnippets order="rand" ⁄> <mySnippets order="rand" ⁄>

corner
 
corner
<myContacts ⁄> <myContacts ⁄>

<email ⁄>


pc@pedrocorreia.net

<windows live messenger ⁄>


pedrojacorreia@hotmail.com

<myCurriculum type="pdf" ⁄>


Download
corner
 
corner
<myBlog show="last" ⁄> <myBlog show="last" ⁄>

corner
 
corner
<myNews show="rand" ⁄> <myNews show="rand" ⁄>

corner
 
corner
<myNews type="cat" ⁄> <myNews type="cat" ⁄>

corner
 
corner
<myQuote order="random" ⁄> <myQuote order="random" ⁄>

No one ever died for my sins in hell, as far as I can tell, at least the ones I got away with
corner
 
corner
<myPhoto order="random" ⁄> <myPhoto order="random" ⁄>

<pedrocorreia.net ⁄>
corner
 
corner
<myAdSense ⁄> <myAdSense ⁄>

corner
 
corner
<myVisitorsMap ⁄> <myVisitorsMap ⁄>

corner
 
 

<Guardar valores enviados pelo Flash ⁄ >




clicks: 10922 10922 2006-10-10 2006-10-10 goto mySnippets mySnippets actionscript  Download  Bookmark This Bookmark This



Como é de conhecimento geral, hoje em dia o recurso ao Flash está cada vez mais enraizado na web (apesar de algumas pessoas pensaram que o AJAX irá causar mossa no desenvolvimento de sites em Flash, não está em causa o facto de concordar ou deixar de concordar, pessoalmente penso que existem espaço para as duas tecnologias, apesar de achar que o AJAX é uma boa tecnologia que já existe há algum tempo, mas só agora com o surgimento da Web 2.0, quem ainda não ouvi esta expressão ponha o braço no ar, é que teve uma grande visibilidade, porém continuo a pensar é um pouco overrated, mas isso são outras histórias as quais não entram para este snippet :)) (poderão consultar o artigo neste link).
Prosseguindo, é normal queremos ter algum feedback do nosso site, qualquer que seja o motivo: guestbook, opiniões sobre algo que tenhamos (ou o nosso cliente) organizado; etc; etc. Obviamente que o nosso [sarcastic mode="on"] querido e adorado [sarcastic mode="off"] Flash também possui essas capacidades. Muito por alto o envio da informação poderá ser visto como um formulário simples html, em que poderemos usar dois métodos: POST e GET. Irá existir um ficheiro (asp, php, asp.net, you name it ...) que ao receber as variáveis (sejam elas post ou get) guarda-as num repositório de dados, seja ele igualmente qual fôr (mysql, sqlserver, txt, mdb, you name it ...), so far nothing new.

Uma imagem vale mais que mil palavras e é bem verdade (neste caso são duas imagens). Em baixo encontra-se um formulário simples feito no Flash com 4 campos (são caixas de texto que apenas terão de ter um atributo diferente, mas mais em baixo será explicado) e 1 botão para "Enviar" a informação (equiparando ao form do html, não é mais do que um submit).


Formulário



Agora vamos configurar os campos, só será mostrada a configuração do nome, porém os outros são em tudo semelhantes, uma das poucas diferenças é que se quisermos fazer com que o campo seja uma textarea (lá voltamos à comparação com o html) teremos de mudar de Single line para Multiline ou eventualmente Multiline no wrap.
A opção sinalizada com um rectângulo vermelho fará com que o flash permita a introdução de texto, como tal terá de ter esta tipificação para que possamos escrever qualquer coisa; o rectângulo a cor-de-laranja será o nome que queremos que o campo tenha e ao qual iremos fazer um Request para obter a informação; por fim o rectângulo a azul é o tamanho máximo de caracteres que o campo pode ter. Estas 3 são as propriedades mais importantes, as outras ficam para os designers :)


Formulário Propriedades

Depois de preenchido o formulário o nosso visitante irá pressionar o "Enviar", este button irá necessitar de algum código, poderá ser algo do tipo como se encontra em baixo.

  1. on (release) {
  2. if (nome!=null) { //verificar se o campo nome está preenchido
  3. System.useCodepage = true;
  4. this.loadVariables ("comentario_add.asp", "POST"); //enviar para o ficheiro comentario_add.as, poderá ser visto como o método post de um form
  5. this.onData = function () {
  6. if (this.res == 'done') { //se a página enviar esta mensagem para o output significa que está tudo OK (o "done" é um valor qualquer que queiramos dar
  7. this.nextFrame (); //passamos a outra frame que poderá dizer qualquer coisa como "Obrigado por participar" (opcional)
  8. }
  9. else { //se chegamos aqui é porque aconteceu qualquer erro no this.loadVariables!
  10. this.gotoAndStop (8); //passamos a outra frame que poderá eventualmente exibir uma mensagem de erro (opcional)
  11. }
  12. };
  13. }
  14. }





Ok, já fizemos o submit para um ficheiro comentario_add.asp e esse ficheiro irá ter o dirty work, vai fazer a requisição da informação; vai tratá-la (lembrem-se do sql injection); vai fazer mais qualquer coisa que seja necessária e por fim vai armazenar a informação. Nestes passos todos resta saber como é que o Flash sabe se a informação foi ou não guardada? Easy! Para compreenderem melhor a maneira como a informação poderá guardada vejam este snippet, neste snippet existem duas funções para armanzar a informação: guardarQuestionarioTXT e guardarQuestionarioMDB. Imaginemos que estamos a submeter a informação do nosso Flash para este snippet, neste caso para que o Flash "perceba" que a informação está armazenada teremos de acrescentar uma linha antes do "end sub", o que se derem uma vista de olhos no código mais em cima, será de fácil compreensão:
Response.Write "res=done"

Poderá ficar algo deste tipo:
  1. <%
  2.  
  3. sub guardarQuestionarioMDB(file, nome, opiniao, aspectos, pontos)
  4.  
  5. Dim adoCon
  6. Dim strSQL
  7.  
  8. Set adoCon = Server.CreateObject("ADODB.Connection")
  9. adoCon.Mode=3
  10. adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(file)
  11. strSQL = "insert into dados_comentarios (nome, opiniao, aspectos, pontos) values ('" & nome & "','" & opiniao & "','" & aspectos & "','" & pontos & "');"
  12. adoCon.Execute strSQL
  13.  
  14. adoCon.Close
  15. Set adoCon = Nothing
  16.  
  17. Response.Write "res=done"
  18.  
  19. end sub
  20.  
  21. %>



O Flash irá "apanhar" o "res=done", se ocorrer algum erro não será feito o output do "res=done".

Qualquer erro/ dúvida é só dizer!









clicks: 10922 10922 2006-10-10 2006-10-10 goto mySnippets mySnippets actionscript  Download  Bookmark This Bookmark This