iMasters Fóruns: [Resolvido] Formulario - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

[Resolvido] Formulario

#1 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Postou 04 novembro 2009 - 21:05

estou trabalhando em um formulario
que nele tenho que colocar varias opções
como uma bem simples é essa assim

nome:
cidade:
e-mail:
Mensagem:

Otimo é isso ai, e so tem mais uma coisa
que precisso colocar uma seta na frente de cidade contendo vario estados quando a pessoa clicar varios estados,
ai quando a pessoa escolher o que ela deseja fica no campo o qual ela escolheu e assim quando enviar para o e-mail
ficar gravado so o campo que ela escolheu
então como eu faço isso

normalmente eu
faço o que
coloco nome na variavel
o cara vai la e coloca os dados
depois quando clica ele chama o PHP
o o PHP enviar para o e-mail

no flash utilizo essa formula aqui

stop();
nome.text = "";
email.text = "";
mensagem.text = "";
telefone.text = "";

var obj_s:LoadVars = new LoadVars();
var obj_l:LoadVars = new LoadVars();

bt_enviar.onPress = function(){
	if (nome.text == "") {
		status.text = "O nome está vazio";
		selection.setFocus("nome");
	} else if (email.text == "") {
		status.text = "O e-mail está vazio";
		Selection.setFocus("email");
	} else if (telefone.text == "") {
		status.text = "O telefone está vazio";
		Selection.setFocus("tele");
	} else if (mensagem.text == "") {
		status.text = "A mensagem está vazio";
		Selection.setFocus("mensagem");
	} else {
		obj_s.nome = nome.text; 		//Valor do nome
		obj_s.email = email.text;
		obj_s.telefone = telefone.text;
		obj_s.mensagem = mensagem.text;
		obj_s.sendAndLoad("mail.php",obj_l,"POST");
		obj_l.onload = carrega;
		gotoAndStop(76);
		status.text = "Enviando com sucesso";
	}
};
bt_limpar.onPress = function(){
	nome.text = "";
	email.text = "";
	mensagem.text = "";
	telefone.text = "";
}


------------------------
grato!

#2 Membro offline   berseck Ícone

  • Flash Developer
  • Ícone
  • Grupo: Moderadores
  • Posts: 3125
  • Cadastrado: 13-outubro 08
  • Sexo:Masculino
  • Localização:Toronto

Postou 04 novembro 2009 - 21:28

O nome do que você que é combobox
é um item que se encontra em components do proprio flash.

Ai basta você setar quais itens você quer etc...
E na hora de enviar o form você envia o campo.value ai pegando a informação que você quer

Abraços

#3 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Postou 05 novembro 2009 - 16:56

Certo
descobri como
se faz um combobox

so que agora como eu coloco a variavel que o usuario escolheu mandar para o php
dentro da formula que eu mandei ai em cima
onde eu coloco ela ?
dentro desse codigo
stop();
nome.text = "";
email.text = "";
mensagem.text = "";
telefone.text = "";

var obj_s:LoadVars = new LoadVars();
var obj_l:LoadVars = new LoadVars();

bt_enviar.onPress = function(){
	if (nome.text == "") {
		status.text = "O nome está vazio";
		selection.setFocus("nome");
	} else if (email.text == "") {
		status.text = "O e-mail está vazio";
		Selection.setFocus("email");
	} else if (telefone.text == "") {
		status.text = "O telefone está vazio";
		Selection.setFocus("tele");
	} else if (mensagem.text == "") {
		status.text = "A mensagem está vazio";
		Selection.setFocus("mensagem");
	} else {
		obj_s.nome = nome.text; 		//Valor do nome
		obj_s.email = email.text;
		obj_s.telefone = telefone.text;
		obj_s.mensagem = mensagem.text;
		obj_s.sendAndLoad("mail.php",obj_l,"POST");
		obj_l.onload = carrega;
		gotoAndStop(76);
		status.text = "Enviando com sucesso";
	}
};
bt_limpar.onPress = function(){
	nome.text = "";
	email.text = "";
	mensagem.text = "";
	telefone.text = "";
}



valeu em

#4 Membro offline   berseck Ícone

  • Flash Developer
  • Ícone
  • Grupo: Moderadores
  • Posts: 3125
  • Cadastrado: 13-outubro 08
  • Sexo:Masculino
  • Localização:Toronto

Postou 05 novembro 2009 - 21:28

Bom
Primeiro poderia por favor utilizar na ferramenta de respota do forum, o código CODE que tem ali em cima são duas setinhas <> para você colocar seu código dentro fica melhor para visualização de seu código


Tirando isso vamos a uma explição basica, pois acho que você ta usando o código sem ao menos sabe para que servem as coisas!

1) LoadVars
var obj_s:LoadVars = new LoadVars();
var obj_l:LoadVars = new LoadVars();

Para que serve isso?
Bom primeiramente obj_s significa ai nesse código objeto que envia (Object_sender) e obj_l é o que carrega (Object_loader)
Os nomes não precisam ser exatamente assim, você poderia ter dado o nome que você bem entende-se para essas variaveis, desde que elas fossem determinadas como LoadVars

Como você determinou isso?
Usando os dois pontos ( : ) após ter dado o nome a variavel.
Sempre que você declarar var variavel: o flash vai lhe dar milhares de opções de variavel a ser determinada. Isso serve para que depois você consiga acessar mais fácilmente as propriedades da mesma. Não necessáriamente você precisa fazer isso.

Bom e o que loadVars faz afinal?
É um objeto no qual você vai determinar variaveis internas que vão conter valores, que você vai passar para outras aplicações através do send ou sendAndLoad

Então quando você faz aqui:
obj_s.nome = nome.text; //Valor do nome
obj_s.email = email.text;
obj_s.telefone = telefone.text;
obj_s.mensagem = mensagem.text;
obj_s.sendAndLoad("mail.php",obj_l,"POST");

Você criou 4 novas variaveis dentro do objeto (obj_s), nome, email, telefone e mensagem.
Após ter criado e dado valores a eles você enviou ao php, e colocou a variavel de retorno (LOAD) como o obj_l e usou o metodo POST para fazer o envio para o PHP, poderia ter escolhido o GET por exemplo.

Então se você quer adicionar um novo valor que vai ser enviado ao php basta você colocar:
obj_s.cidade = comboBox.value

No exemplo que você quer, logo abaixo do telefone, ou da mensagem... e antes do sendAndLoad

Ficando assim:
obj_s.nome = nome.text;
obj_s.email = email.text;
obj_s.telefone = telefone.text;
obj_s.cidade = comboBox.value;
obj_s.mensagem = mensagem.text;
obj_s.sendAndLoad("mail.php",obj_l,"POST");
E pronto agora você enviou a variavel cidade ao php

Para receber no php tem que usar:
<?php
$cidade = $_POST['cidade'];
?>


E agora você tem a variavel tbm válida no PHP como $cidade

Espero que depois dessa explicação sua vida com formulários fique bem mais fácil

Abraços e bons estudos!

#5 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Postou 06 novembro 2009 - 11:21

Caramba Olha você não so quebrou um galho pra mim mas sim uma "Árvore" poxa em
uma explicação dessa nem tenho como agradecer
valeu mesmo em

abração pra te!!

#6 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Postou 06 novembro 2009 - 15:11

certo
quando eu fiz o teste não deu certo

o meu PHP
esta assim
<?php
@extract($_POST);
$recipient = "pamplona_3@hotmail.com";
$subject = "Contato Delano Imoveis";
$msg = "Nome: $nome\nemail: $email\nCidade: $_POST['cidade']\nTelefone: $telefone\nMensagem: $mensagem";
$mailheaders = "From: $Email";

	mail("$recipient", "$subject", "$msg", "$mailheaders");
header("location: pagina.htm");
	
?>


e você viu ai eu coloquei o Cidade
so que eu tenho que colocar cidade dentro de "$msg" para aparece no e-mail tudo certnho ordem
agora você colocou pra mim
assim solto
<?php$cidade = $_POST['cidade'];?>


ai eu imaginei que fosse-se daquela forma que eu coloquei em cima ai
mas num deu certo quando manda para o e-mail ele não aparece nada do comboBox

la no flash eu dei conta ficou tudo certo

mas eai que você me diz?

#7 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Postou 06 novembro 2009 - 15:34

Olha acabei de fazer um outro teste aqui
deu isso aqui
no e-mail


Nome: dago
email: pamplbn@hotmail.com
Cidade: undefined
Telefone: 62165490
Mensagem: teste formulario teste 00010

então quer dizer q esta havendo algum problema
so que agora eu coloquei o codigo do PHP
assim

<?php
@extract($_POST);
$recipient = "pamplona_3@hotmail.com";
$subject = "Formulario Delano Imoveis";
$msg = "Nome: $nome\nemail: $email\nCidade: $cidade = $_POST['cidade'];\nTelefone: $telefone\nMensagem: $mensagem";
$mailheaders = "From: $Email";

	mail("$recipient", "$subject", "$msg", "$mailheaders");
header("location: pagina.htm");
	
?>


essa msg que apareceu
"Cidade: undefined"

o que deve ser ?

#8 Membro offline   berseck Ícone

  • Flash Developer
  • Ícone
  • Grupo: Moderadores
  • Posts: 3125
  • Cadastrado: 13-outubro 08
  • Sexo:Masculino
  • Localização:Toronto

Postou 06 novembro 2009 - 16:46

Ok o undefined é proveniente de um valor desconhecido vindo do flash...

Ou seja combobox.value não foi definino.
Como aqui citado:
obj_s.cidade = comboBox.value;


Como pode ver isso foi apenas um exemplo de como se pega o valor do comboBox
O que isso quer dizer? ele vai pegar o valor da ARRAY de seu combobox
Em que posição se encontra o valor 1,2,3,4,5,6 e assim por diante

Então vamos a um exemplo simples para você entender como funciona =)
Pegue um combo box na parte de componentes e jogue em seu palco
Agora instancie e my_cb
Feito isso
Clique sobre o frame e cole o seguinte código:
my_cb.addItem({data:1, label:"Ecolha sua Cidade"});
my_cb.addItem({data:2, label:"São Paulo"});
my_cb.addItem({data:3, label:"Rio de Janeiro"});
my_cb.addItem({data:4, label:"Salvador"});
my_cb.addItem({data:5, label:"Minas Gerais"});

var listenerObject:Object = new Object();
listenerObject.change = function(eventObject:Object) {
	trace('Nome da Cidade escolhida: '+my_cb.text);
	trace('Posição da cidade no combobox: '+my_cb.value);
};
my_cb.addEventListener("change", listenerObject);


Ok, o que vai retornar ai?
No primeiro trace no output de seu flash, aparecerá a frase Nome da Cidade escolhida: Nome da cidade que você escolheu no combobox
E no segundo trace vai dar a posição do item dentro do combobox

Assim sendo quando você escolher uma cidade em seu form você tem que passar instancia de seu combobox . text, para ele pegar qual foi o texto selecionado.

E pronto agora vai funcionar.

Abraços e bons estudos

#9 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Postou 07 novembro 2009 - 14:42

olha me desculpa mas estou aqui novamente
é o seguinte
endendi tudo que você explicou certo
so que o problema esta aqui
onde eu coloco esse codigo que você me mostou
my_cb.addItem({data:1, label:"Ecolha sua Cidade"});
		my_cb.addItem({data:1, label:"Goiania"});
		my_cb.addItem({data:2, label:"Brasilia"});

		var listenerObject:Object = new Object();
		listenerObject.change = function(eventObject:Object) {
       			trace('Nome da Cidade escolhida: '+my_cb.text);
        		trace('Posição da cidade no combobox: '+my_cb.value);
		};
		my_cb.addEventListener("change", listenerObject);


dentro
desse aqui
stop();
nome.text = "";
email.text = "";
mensagem.text = "";
telefone.text = "";

var obj_s:LoadVars = new LoadVars();
var obj_l:LoadVars = new LoadVars();

bt_enviar.onPress = function(){
	if (nome.text == "") {
		status.text  = "O nome está vazio";
		selection.setFocus("nome");
	} else if (email.text  == "") {
		status.text  = "O e-mail está vazio";
		Selection.setFocus("email");
	} else if (telefone.text == "") {
		status.text  = "O telefone está vazio";
		Selection.setFocus("tele");
	} else if (mensagem.text  == "") {
		status.text  = "A mensagem está vazio";
		Selection.setFocus("mensagem");
	} else {
		obj_s.nome = nome.text; 		//Valor do nome
		obj_s.email = email.text;
		obj_s.telefone = telefone.text;
		obj_s.cidade = comboBox.value;
		obj_s.mensagem = mensagem.text;
		obj_s.sendAndLoad("mailformulario.php",obj_l,"POST");
		obj_l.onload = carrega;
		gotoAndStop(76);
		status.text = "Enviando com sucesso";
	}
};
bt_limpar.onPress = function(){
	nome.text = "";
	email.text = "";
	mensagem.text = "";
	telefone.text = "";
}

´

eu tentei colocar ele de varias maneiras o que acontece
que ele não manda para o PHP em .text
no PHP
quando eu tava fazendo alguns teste
descobri que aquele codigo quando eu coloco ele
assim
<?php
@extract($_POST);
$recipient = "pamplona_3@hotmail.com";
$subject = "Formulario Delano Imoveis";
$msg = "Nome: $nome\nemail: $email\nCidade: $comboBox\nTelefone: $telefone\nMensagem: $mensagem";
$mailheaders = "From: $Email";

	mail("$recipient", "$subject", "$msg", "$mailheaders");
header("location: pagina.htm");
	
?>


da certo, pq quando eu coloco da forma que eu tinha pensado que dava certo o e-mail não chegava no destino certo
então agora a minha duvida é com o flash pq o flash não esta mandando em text para o PHP que na linha ($msg) ele parece que so le .text então eu tenho que colocar aquele codigo que você me passou separado desse meu? num outro freime?
nossa hoje eu coloquei ele em varios lugares e nada dele transformar em .text, eu troquei de nome do arquivo (my_cb)
olha onde estou fazendo o teste.
http://www.inflamavel.net/dago123/
entra dentro de procurar imoveis
la dentro tem um exemplo la so que essa pagina ai esta em teste so pra mim aprender a fazer isso ai.


valeu mais uma vez!

#10 Membro offline   blockmonork Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 177
  • Cadastrado: 26-outubro 04
  • Sexo:Masculino
  • Localização:Belo Horizonte-MG

Postou 07 novembro 2009 - 18:21

Fica assim:


stop();
nome.text = "";
email.text = "";
mensagem.text = "";
telefone.text = "";
var cidade:String = ''; // ESSA VARIÁVEL PEGARÁ A CIDADE DO COMBOBOX


// objetos responsáveis pelo envio do email

var obj_s:LoadVars = new LoadVars();
var obj_l:LoadVars = new LoadVars();


// listenner do combo

var listenerObject:Object = new Object();



// aqui você adiciona as cidades - é crtl+c / crtl+v alterando obviamente os valores número (data) e nome da cidade (label)

my_cb.addItem({data:1, label:"Ecolha sua Cidade"});
my_cb.addItem({data:1, label:"Goiania"});
my_cb.addItem({data:2, label:"Brasilia"});

listenerObject.change = function(eventObject:Object) {
	cidade = my_cb.text;
	trace('saídas de teste');
	trace('Cidade selecionada: '+cidade);
};

my_cb.addEventListener("change", listenerObject);


bt_enviar.onPress = function(){
        if (nome.text == "") {
                status.text  = "O nome está vazio";
                selection.setFocus("nome");
        } else if (email.text  == "") {
                status.text  = "O e-mail está vazio";
                Selection.setFocus("email");
        } else if (telefone.text == "") {
                status.text  = "O telefone está vazio";
                Selection.setFocus("tele");
        } else if (mensagem.text  == "") {
                status.text  = "A mensagem está vazio";
                Selection.setFocus("mensagem");
        } else if(cidade == '' or cidade == 'Ecolha sua Cidade'){ // VERIFICAÇÃO DO COMBO AQUI
		status.text = 'selecione uma cidade';
	} else {
                obj_s.nome = nome.text;                 //Valor do nome
                obj_s.email = email.text;
                obj_s.telefone = telefone.text;
                obj_s.cidade = cidade; // A VARIÁVEL QUE MANDARÁ PRO PHP O COMBO RECEBE O VALOR AQUI
                obj_s.mensagem = mensagem.text;
                obj_s.sendAndLoad("mailformulario.php",obj_l,"POST");
                obj_l.onload = carrega;
                gotoAndStop(76);
                status.text = "Enviando com sucesso";
        }
};
bt_limpar.onPress = function(){
        nome.text = "";
        email.text = "";
        mensagem.text = "";
        telefone.text = "";
}

NO PHP

$cidade = $_POST['cidade'];

// E MONTA O CORPO DO EMAIL 



#11 Membro offline   _dago_ Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 62
  • Cadastrado: 15-fevereiro 09

Ícone  Postou 07 novembro 2009 - 19:40

RESOLVIDO

Foi complicado mais foi um otimo aprendizado
obrigado a todos

so uma observação
no nosso amigo ai falou como deveria colocar no swf certo
e no PHP

so que no meu PHP
eu coloquei assim
<?php
@extract($_POST);
$recipient = "asdasd@hotmail.com";
$subject = "Formulario Delano Imoveis";
$msg = "Nome: $nome\nemail: $email\nCidade: $cidade\nTelefone: $telefone\nMensagem: $mensagem";
$mailheaders = "From: $Email";

	mail("$recipient", "$subject", "$msg", "$mailheaders");
header("location: pagina.htm");
	
?>


quero dizer que eu não utilizei
<?php$cidade = $_POST['cidade'];?>


mas agradeço a todos
obrigado abração!!

#12 Membro offline   berseck Ícone

  • Flash Developer
  • Ícone
  • Grupo: Moderadores
  • Posts: 3125
  • Cadastrado: 13-outubro 08
  • Sexo:Masculino
  • Localização:Toronto

Postou 07 novembro 2009 - 19:44

Que bom que conseguiu...

Não é necessário sempre declarar a variavel para que ela funcione.
Mas as vezes se você não declarar dependendo do servidor o e-mail simplemente não funciona.

Por isso se puder torne padrão em todas as linguagens que você estiver aprendendo e desenvolvendo declarar as variáveis antes de usar as mesmas.

Abraços

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)