Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JHerrscher

SWF x HTML

Recommended Posts

Olá Comunidade.

 

estou num beco sem saída.

 

Tenho um swf que contem varias seções, uma delas e a de contato. Quando testo o SWF (CTRL+ENTER) funciona perfeitamente, porém quando o coloco numa página HTML, ou seja para que possa ser acessado via navegador, o formulario não funciona, ou melhor, funciona parcialmente, pois a mensagem é enviada, mas o retorno do envio que carrego via OnLoad não é processado.

 

o que posso fazer para solucionar esse problema???

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você quer fazer?

 

Ao chegar a resposta do php que a mensagem foi enviada

Mudar o status de envio do campo do formulário??

 

Se for isso no php

tem de acrescentar a linha:

echo "variavel=Mensagem Enviada";

 

e no flash

pegar a variavel... e colocar no lugar do status do campo

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todas as questões relacionadas ao envio da mensagem e tratamento dos retornos pelo php estão OK, já que via SWF puro funciona perfeitamente. O ponto está no momento que coloco o swf dentro de uma página web, seja html ou qualquer outra coisa. O retorno não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o código AS. Lembro que o SWF puro sem estar dentro de um html, por exemplo, está funcionando perfeitamente. O problema está qunado jogo o SWF dentro de um HTML. Daí para de funcionar.

 

stop();

System.useCodepage = true; // usar o formato Unicode, pra não haver problemas com o texto.

 

 

// atribuindo a ordem de foco dos campos quando a tecla "Tab" for pressionada

nome_txt.tabIndex = 1;

email_txt.tabIndex = 2;

mensagem_txt.tabIndex = 3;

status_txt.autoSize = true;

 

/* Criamos uma instancia para a Classe LoadVars */

var envia:LoadVars = new LoadVars();

 

/* Ao clicar do botão enviar */

enviar_btn.onPress = function() {

/* Verifica se preencheu o campo nome */

if (nome_txt.text == "") {

/* Mostra a mensagem de erro */

status_txt.text = "Preencha o campo Nome corretamente";

/* Verifica se preencheu o campo email */

} else if (email_txt.text == "") {

/* Mostra a mensagem de erro */

status_txt.text = "Preencha o campo E-mail corretamente";

} else if ((email_txt.text.indexOf("@") == -1 || email_txt.text.indexOf(".") == -1)) {

/* Mostra a mensagem de erro */

status_txt.text = "Preencha o campo E-mail corretamente";

/* Verifica se preencheu o campo mensagem */

} else if (mensagem_txt.text == "") {

/* Mostra a mensagem de erro */

status_txt.text = "Preencha o campo Mensagem corretamente";

} else {

/* Envia para o PHP a variavel nome com os dados do campo nome */

envia.nome = nome_txt.text;

/* Envia para o PHP a variavel email com os dados do campo email */

envia.email = email_txt.text;

/* Envia para o PHP a variavel mensagem com os dados do campo mensagem */

envia.mensagem = mensagem_txt.text;

 

/* Envia para o PHP a variavel programas o valor da variável programas */

//envia.programas = programas;

/* Avisa que está mandando o E-mail */

status_txt.text = "Enviando mensagem";

/* Enviamos as variáveis ao PHP e carregamos a mensagem que vai vir do PHP */

envia.sendAndLoad("http://www.dominio.com.br/envia.php", envia, "POST");

 

}

};

/* Assim que o PHP for carregado */

envia.onLoad = function(ok) {

 

if (ok){

//erro = this.erro;

 

if (this.erro == 1) {

status_txt.text = "Erro.";

} else {

status_txt.text = "OK.";

}

}

};

 

/* Ao clicar do botão limpar */

reset_btn.onPress = function() {

/* Chamamos a função limpa */

reset();

};

/* Função responsável por limpar os campos do formulário */

function limpainput() {

/* Apagamos os campos de texto */

nome_txt.text = "";

email_txt.text = "";

mensagem_txt.text = "";

}

 

function reset() {

/* Apagamos os campos de texto */

nome_txt.text = "";

email_txt.text = "";

mensagem_txt.text = "";

status_txt.text = "";

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

no php eu atribuo à variavel erro=0 (tudo ok) e erro=1 (deu errado). Já fiz o teste e ele retorna os valores corretos.

 

mail($para, $assunto, $corpo, $headers);
	  /* Retorno para o Flash */
	  /*OK*/
	  echo 'erro=0';
   /* Erro*/
   } else {
	  /* Retorna para o Flash */
	  echo 'erro=1';
   }

No AS está assim:

 

envia.onLoad = function(ok) {
	
		if (ok){
			//erro = this.erro;
			
			if (this.erro == 1) {
				status_txt.text = "Erro.";
			} else {
				status_txt.text = "OK.";
			}
		}
};

Muito bem. não acredito que o erro esteja no código, já que, via (CTRL+ENTER) funciona perfeitamente (envia email - recebe a variavel - onload a recebe - a mensagem se deu certo ou não aparece no flash). Já quando coloco o SWF dentro de um HTML não funciona nem a pau. fiz o teste localmente fazendo logicamente as devidas alterações e via provedor e o sintoma é o mesmo.

 

 

 

Valeu e aguardo retono

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não entendeu, eu pedi para testar daquela forma pra saber o que exatamente esta vindo

 

faz a alteração e veja o que ele joga na na "status_txt", assim fica mais facil saber o que esta acontecendo

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá pra ver que ele retornou certo tem o "erro=0" ali no meio, o problema é no flash

 

o problema pode ser o tipo de dado pra comparar, testa assim, usando "1"

 

envia.onLoad = function(ok) {
  if (ok){
	if (this.erro == "1") {
	  status_txt.text = "Erro.";
	} else {
	  status_txt.text = "OK.";
	}
  }
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só por curiosidade...

 

Como ta seu código PHP?

do envio de e-mail?

 

Pois pode ser ele que errado... na parte de retorno...

 

Se o seu código estiver enviando mensagem..... de volta ao navegador do flash

 

no php deve só aparecer seu echo na tela com resto tudo branco

se você acessar ele diretamente....

 

Da uma testada ai...

 

Isso obvio se você não colocou um bloqueador de acesso direto com die.....

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse teste eu já havia feito e está tudo OK. o código funciona.

 

a questão está no porque isso para de funcionar no momento que coloco o SWF dentro de um html.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só por curiosidade...

 

Como ta seu código PHP?

do envio de e-mail?

 

Pois pode ser ele que errado... na parte de retorno...

 

Se o seu código estiver enviando mensagem..... de volta ao navegador do flash

 

no php deve só aparecer seu echo na tela com resto tudo branco

se você acessar ele diretamente....

 

Da uma testada ai...

 

Isso obvio se você não colocou um bloqueador de acesso direto com die.....

 

Abraços

Testei e só aparece o echo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta dizer para o flash que o arquivo php ta na mesma pasta que ele.....

 

Se você publicar ele na internet...

 

Em vez de dar o caminho completo.... tenta dar só o enviar.php

 

Que pode ser erro de caminho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

berseck..Eder

 

Antes de mais nada gostaria de agradece-los pelo apoio nesta questão.

 

O código está funcionando..senão eu nem conseguiria enviar a mensagem no teste da scene.

 

A questão continua sendo porque no momento que jogo o SWF numa pagina qualquer (html) para acessar esse objeto no navegador para de funcionar.

 

 

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que você disse, ao testar no html, ele manda o email, executa o onLoad do flash, mas não retorna o valor correto?

A variavel "output" que é enviada pelo PHP contém o valor correto do processamento, mas no momento em que vou testar o valor para apresentar a mensagem no movie não funciona.

 

Ex. vamos ententer que o valor da variável output está com valor de 'sent'. Pela condição que está sendo testada, deveria apresentar "Sua mensagem foi enviada com sucesso". Fato. porém isso no ocorre. É apresentada a condição de erro. Se altero o atributo da condição de " == " para "!=" daí entra na condição de "OK". Mas isso também está errado, pois se der algum erro efetivamente, a condição de erro não será acionada.

 

//	Todas as variaveis importadas serão enviadas via POST
	process.sendAndLoad("http://www.dominio.com.br/envia.php", retorno,"POST");
	
	// Avanca para proximo frame  
	_parent.nextFrame();
	
	// Carrega retorno do PHP
	retorno.onLoad = function() {
		
   /* Se carregou tudo certo */
	   if (this.output == 'sent') {
		  /* Se deu tudo ok no PHP */
			 _parent.errTitle.text = 'Obrigado.';
			 _parent.errType.text  = 'Sua mensagem foi enviada com sucesso. Em breve entraremos em contato.';
			 
		  } else {
			 /* Mostra mensagem de erro */
			 _parent.errTitle.text = 'Erro.';
			 _parent.errType.text = this;
			 //_parent.errType.text  = 'Ocorreu um erro durante o processamento da sua mensagem. por favor, tente mais tarde.';
		  }

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.