Jump to content

Gerador de html para formulários


vjoe
 Share

Recommended Posts

Ora viva,

Gostaria de fazer um gerador de html para formulários em php. Aqui fica um pequeno exemplo:

Nome: (form variavel1)

Ano de lançamento: (form variavel2)

Output:

<b>Nome:</b> variavel1 <br>

<b>Ano de lançamento:</b> variavel2

Perceberam?

Quanto à lógica, não tenho problemas. Acontece que não pesco muito de php. Nomeadamente, os forms e as variáveis. Será que me podiam dar uma ajudinha? 😄

Obrigado

Link to comment
Share on other sites

Blue_Acid

Viva

O que tu queres a maneira que eu estou a ver, é fazeres um form, dp envias os dados do form e geras o código.

FORMULARIO - form.php

<!-- fomulario apos carregar no botao, manda as variaveis para o ficheiro gerar_html.php  -->
<form action="gerar_html.php" method="post">

<!-- Caixa de texto k pede o nome -->
O Seu Nome: <input type="text" name="txt_nome" />

<!-- Caixa de texto k pede o ano -->
Ano de Lancamento: <input type="text" name="txt_ano" />

<!-- Botao para fazer o Post  -->
<input type="submit" value="Gerar HTML" />
</form>

Ficheiro gerar_html.php

<?
//---- Aramazena as Variaveis enviadas do formulario
  $var_nome = $_POST['txt_nome'];
  $var_ano = $_POST['txt_ano'];

//---- Escreve o codigo
print (" <b> Nome: </b> $var_nome <br>");
print (" <b> Ano de Lancamento: </b> $var_ano <br>");
?>

Bem eu não sou muito experiente, tentei ajudar com os conhecimentos que tenho, se alguem vir erros, avisem, para assim eu tb aprender mais um pouco.

Espero ter ajudado  😄

SIGNIFICADOS: WWW: Wait,wait,wait... HTML: Hoje Ta Mais Lento.KEYBOARD: Dispositivo usado para entrada de erros no Computador.

Link to comment
Share on other sites

Ped@ntilva

Acho que o que fizes-te funciona na perfeição.

Mas podes colocar tudo só num ficheiro.

<? 
if ($_REQUEST['gerar']=="Gerar"){
  $var_nome = $_POST['txt_nome'];
  $var_ano = $_POST['txt_ano'];


   print (" <b> Nome: </b> $var_nome <br>");
   print (" <b> Ano de Lancamento: </b> $var_ano <br>");
}
else{ ?>
<form action="<? print $_SERVER['PHP_SELF'];?>" method="post">
O Seu Nome: <input type="text" name="txt_nome" />
Ano de Lancamento: <input type="text" name="txt_ano" />
<input type="submit" value="Gerar" name="gerar" />
</form>

<?
}
?>

Penso que não cometi nenhum erro;

não testei...

mas penso que está correcto...

Cumps,

Pedantilva

Link to comment
Share on other sites

Vocês são os maiores, obrigado :P

Por acaso prefiro que seja um só ficheiro. Não há maneira do "output" aparecer na mesma página? :)

Já agora, se não for pedir muito, podiam-me explicar o código? A ver se aprendo PHP de vez ;)

Por exemplo, em

$var_nome = $_POST['txt_nome'];

O que é o txt_nome? É para saber o número de caracteres? E o $_Post?

E o

$_SERVER['PHP_SELF']

?

Obrigado ;)

Link to comment
Share on other sites

Blue_Acid

Viva

Obrigado Ped@ntilva assim, tb me vai dar mais jeito em algumas situação, pois eu sabia que dava para fazer POST na mesma página, mas o k tenho testado nunca funcionou, por isso tenho usado sempre ficheiros secundários.  ;)

Bem eu posso explicar o que eu fiz.

$var_nome = $_POST['txt_nome'];

- $var_nome  cria uma variavel, que vai guardar o valor que vier do $_ POST

- = atribui o valor, como na maioria das linguagem de programação

- $_POST ñ sei se lhe chamo função, perdoem se estou a dizer mal, mas assim consigo explicar, é a função, usada para ir buscar os dados enviados por um formulário

- $_POST['txt_nome']; é para ir buscar o valor que vem do formulário associado ao txt_nome, caso não tenhas reparado, no formulário nas caixas de texto, existe um campo chamado name="txt_nome"  é este name k é identificado pelo $_POST

Espero ter-me feito entender.

Quanto ao

$_SERVER['PHP_SELF']

não sei o que é, o Pend@ltiva melhor que ninguem para te explicar.

Um Abraço  ;)

SIGNIFICADOS: WWW: Wait,wait,wait... HTML: Hoje Ta Mais Lento.KEYBOARD: Dispositivo usado para entrada de erros no Computador.

Link to comment
Share on other sites

Ped@ntilva

Para explicar o $_POST, $_GET, $_SERVER, $_COOKIE, etc, etc, nada melhor que ir ao manual dar uma vista de olhos... ;)

http://pt.php.net/manual/en/reserved.variables.php

De qualquer forma posso dar sempre uma ideia da coisa.

O GET é usado para enviar informação de uma página para a outra atraves do endereço, ou seja,

http://site.com/pagnia.php?modo=normal&tipo=editar

pagina.php recebe as variaveis modo e tipo por endereço essas variaveis ficam guardadas no GET:

$_GET['nome']; tem a variavel nome

$_GET['tipo']; tem a variavel tipo.

O POST em relação ao GET para formulários é muito melhor porque assim os dados não são passados por endereço.

para ir buscar os dados faz-se

$_POST['nome_da_txtBox']

ou seja para receber os dados de determinado campo do formulario, ao criar uma caixa de texto ela fica com um nome, nome esse que deve ser colocado em 'nome_da_txtBox'.

O REQUEST verifica guarda as variáveis que fazem os pedidos, ao fazer submit o browser faz um pedido.

Agora vou comentar o código:

<?php
//no form o botao de submit chama-se "gerar", e o valor que tem e "Gerar"
//este if vai ver se houve um envio de dados.
if ($_REQUEST['gerar']=="Gerar"){
$var_nome = $_POST['txt_nome'];//como no form o campo que tem o nome 
//chama-se 'txt_nome'
$var_ano = $_POST['txt_ano'];//e da mesma forma que o anterior
//este codigo que se segue simplesmente imprime as variaveis
print (" <b> Nome: </b> $var_nome <br>");
print (" <b> Ano de Lancamento: </b> $var_ano <br>");
}//caso nao tenha sido pedido o envio vai aparecer o form
else{ ?> <!--este ?> e muito util pois consegues misturar php com html
de uma forma facil -->
<!-- o $_SERVER['PHP_SELF'] contem o endereço da pagina actual
em vez disto podia-se por o nome da pagina mas imagine-se que 
decidimos mudar o nome da pagina, teriamos que mudar este campo tambem,
assim garante que chamas sempre a mesma pagina. -->
<form action="<? print $_SERVER['PHP_SELF'];?>" method="post">
O Seu Nome: <input type="text" name="txt_nome" />
Ano de Lancamento: <input type="text" name="txt_ano" />
<input type="submit" value="Gerar" name="gerar" />
</form>

<?
} // nao convem esquecer de fechar o else que se abriu la em cima
?> 

Espero que esteja tudo compreensivel.

de qualquer forma estou por cá para tirar dúvidas... 😁

Cumps,

Pedantilva

Link to comment
Share on other sites

Só não perecbi muito bem o request  ;)

E porque fazes a condição no inicio?

Como faço para o output aparecer na mesma pagina do formulario?

Link to comment
Share on other sites

Ped@ntilva

Não sei se já testas-te este script que fiz.

Se já tentas-te já ves que ele faz o output no mesmo ficheiro.

Quando fazes click no botao de submit esse botão vai ficar guardado no REQUEST. por isso uso o REQUEST.

A condição está no inicio porque?

Porque ao ser pedida a página pode acontecer duas situações.

1-simplesmente aceder à pagina para preenchimento do formulário.

2-ver os dados inseridos no formulário.

Para que ao carregar a página ela saiba o que é pedido tens de ver se houve envio de dados.

Caso houve envio de dados ele faz o output dos dados, caso contrário ele faz o output do form para ser preenchido.

espero ter sido esclarecedor.

Cumps,

Pedantilva

Link to comment
Share on other sites

Ped@ntilva, nop. Estou a falar do output aparecer em baixo do formulário ;)

Obrigado d_pintassilgo. Amanhã dou uma vista de olhos (hoje ja estou todo arrebentado) ;)

Link to comment
Share on other sites

Ped@ntilva

Deixa ver se percebi queres que o output apareça por baixo do formulário??

Se tirares o else aparece-te o output por cima do form, para pores em baixo é so pegares no if todo e colocar a seguir ao form...

OK?

Cumps,

Pedantilva

Link to comment
Share on other sites

Ped@ntilva

O method é o tipo de envio da informação para a página seguinte.

Se escolheres post na pagina que recebe os dados tens de ler as variaveis do POST

por exemplo:

$var_nome = $_POST['txt_nome'];

Se escolheres get tens de ler o GET

$var_nome = $_GET['txt_nome'];

Quando escolhes o modo de envio como get a informação é passada por endereço..

Ou seja:

pagina.php?nome=nomeinserido&ano=2004

Se for post esses dados não são passados como argumento e é o que eu recomendo.

Cumps,

Pedantilva

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.