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

Formulário Em Uma Só Página


Eric Freitas

Pergunta

seguinte pessoal sei que tem como fazer form. em uma só página usando função e no action usar $_server['php_self'];

contudo estou pesando em útilizar funções, alguém sabe me dizer como eu faria para chamar uma determinada função qd a pessoa clicar em enviar? ou eu teria que passar um valor em um campo escondido e fazer um monte de if?

alguém sabe explicar a maneira mais fácil e funcional de se fazer?

por favor não cole códigos.. quero aprender e não copiar. Obrigado

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Para uma função rodar, você terá que chamá-la, o que, neste caso, seria redundante.

Você pode colocar o $_server['php_self']; sim, e na página, utilizar um if.

Vamos supor que os campos sejam Nome, Endereco e Telefone.

E que o name do botão Submit seja Enviar, assim como o value.

Você pode fazer algo assim:

if ($_POST["Enviar"]){
// Seu código
}

Se o formulário enviar por GET, é só trocar $_POST["Enviar"] por $_GET["Enviar"] !

Link para o comentário
Compartilhar em outros sites

  • 0
Então você pode criar essas funções, e no if, apenas chamá-las.

Tipo:

if($_POST["Enviar"];){
Verifica();
Cadastra();
}

E quantas mais funções você quiser.

tipow.. num sei se é aqui mas ta dando erro no fórum o tempo todo...

mas beleza.. até ai intendi, mas tipo primeiro chamo 1 depois outra e depois outra.. no caso so chamar a função dentro da função?

Link para o comentário
Compartilhar em outros sites

  • 0

Pra dar verdadeiro, você coloca:

if ($_POST["Enviar"]){
$Enviado = "verdadeiro";
}
E aí você trabalha com a variável $Enviado . Logicamente você poderá dar qualquer nome para esta variável. Para trabalhar com a variável, você pode fazer:
if ($Enviado == "verdadeiro){
// Seu código
}
else {
// Senão, outro código
}

Link para o comentário
Compartilhar em outros sites

  • 0
Pra dar verdadeiro, você coloca:

if ($_POST["Enviar"]){
$Enviado = "verdadeiro";
}
E aí você trabalha com a variável $Enviado . Logicamente você poderá dar qualquer nome para esta variável. Para trabalhar com a variável, você pode fazer:
if ($Enviado == "verdadeiro){
// Seu código
}
else {
// Senão, outro código
}

entendo.. vlw aí Lvcifer muito obrigado.. agora se puder entrar no meu tópico array ajuda pra ver se entende o que eu quero dizer ficaria muito MAIS GRATO AINDA =D

Link para o comentário
Compartilhar em outros sites

  • 0

aaaaaaaaaaaaaaaaaaaaaa

o que q ta errado ai? eu num cheguei a termina mas eu sempre vo testando pra ver erros dai eu coloquei pra qd clica no enviar me mostrar os itens passados.. mas não passa nada... alguém pode me dizer porque?

<?php
//-------> Declarando funções
function geraFormPessoal($_x,$_y){
echo'<fieldset><legend align="left" color="red"><b><font color="red">Dados Pessoais</font></b></legend>';
echo'<table width="280" border="0" cellspacing="0" cellpadding="0">';
$_i=0;
foreach($_x as $_chv){
$cor = ($_i % 2 == 0) ? '#FFFFFF"' : '#f6f6f6';

echo'<tr>
<td bgcolor="'.$cor.'"><strong>'.$_chv.' :</strong></td>
<td bgcolor="'.$cor.'"><img src="imagens/flexa_cad.gif" width="15" height="20"></td>';
$_chv = str_replace($_x[$_i],$_y[$_i],$_chv);
echo'<td bgcolor="'.$cor.'"><input name="'.$_chv.'" type="text" id="'.$_chv.'" size="20" maxlength="150" value="'.$_POST['$_chv'].'"></td>
</tr>';
$_i+=1;

}
echo'</table></fieldset>';
}
function geraFormUser($_x,$_y){
echo'<fieldset style"width: 290px"><legend align="left" color="red"><b><font color="red">Dados da Conta</font></b></legend>';
echo'<table width="280" border="0" cellspacing="0" cellpadding="0">';
$_i=0;
foreach($_x as $_chv){
$cor = ($_i % 2 == 0) ? '#FFFFFF"' : '#f6f6f6';

echo'<tr>
<td bgcolor="'.$cor.'"><strong>'.$_chv.' :</strong></td>
<td bgcolor="'.$cor.'"><img src="imagens/flexa_cad.gif" width="15" height="20"></td>';
$_chv = str_replace($_x[$_i],$_y[$_i],$_chv);
if($_chv=='passwd' || $_chv=='passwd1'){
echo'<td bgcolor="'.$cor.'"><input name="'.$_chv.'" type="password" id="'.$_chv.'" size="20" maxlength="150" value="'.$_POST['$_chv'].'"></td>
</tr>';
}else{
echo'<td bgcolor="'.$cor.'"><input name="'.$_chv.'" type="text" id="'.$_chv.'" size="20" maxlength="150" value="'.$_POST['$_chv'].'"></td>
</tr>';
}
$_i+=1;

}
echo'</table></fieldset>';
}
function mostraForm(){
//------->Final de declaração de funções;
//--------------->arrays de campos e nomes para os forms.
$_dadosPessoais = array('Nome Completo','Cep','Complemento','E-mail Privado','Confirmar E-mail');
$_trocaPessoais = array('nome','cep','comp','email1','email2');
$_dadosConta = array('Username','Senha','Confirma Senha');
$_trocaConta = array('user','passwd','passwd1');
//--------->Final arrays
//------->Chamando Funções para gerar o html
echo'<form action="'.$_SERVER['PHP_SELF'].'" method="post" name="cadastro" id="cadastro">';
echo'<fieldset style="width: 280px; background-position: center center;"><legend align="left" color="red"><font color="red"><b>Cadastro</b></font></legend>';
echo geraFormPessoal($_dadosPessoais,$_trocaPessoais);
echo'<br><br>';
echo geraFormUser($_dadosConta,$_trocaConta);
echo'<br><br>';
echo'<fieldset style="width: 70px" align="center"><input align="center" name="envia" type="button" type="submit" value="Enviar Dados" ></fieldset>';
echo'</fieldset></form>';
//------>Fim do formulário
}
//---->Iniciando função para tratamento do formulário
function trataForm(){
$_dados = array('Nome'=> $_POST['nome'],
'Cep' => $_POST['cep'],
'Complemento' => $_POST['comp'],
'Senha' => $_POST['passwd'],
'Senha2' => $_POST['passwd1'],
'Email' => $_POST['email1'],
'Email2' => $_POST['email2'],);
foreach($_dados as $_chv => $_vlr){
if($_vlr){

}

}



}
if($_POST['envia']!=Null){
header();
echo trataForm();
}else{
echo mostraForm();
}
?>[/codebox]

e aproveitando se alguém puder me dar dicas sobre como melhorar aceito =D

Link para o comentário
Compartilhar em outros sites

  • 0

Ae, funciono, o fato de ter 2 type no button fez com q o programa não enviase os dados.. agora estou passando para a parte de tratamento... até iria pedir dicas.. mas antes vou ler e ver se acho coisas sobre segurança e etc..

muito obrigado pela ajuda ae =D e ah.. já diminui o código usei uma só função para gerar o form.. bom... ta bem legal.. agora vamos terminar.. ainda tenho 1 hr de trampo mais 1 hr de pesquisa e dúvidas... =D

vlw brigadu denovo povo =D

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,2k
    • Posts
      652k
×
×
  • Criar Novo...