• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vjoe

Gerador de html para formulários

14 mensagens neste tópico

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? :D

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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 ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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... :cheesygrin:

Cumps,

Pedantilva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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) ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Feito :thumbsup:

Já agora, para que serve o parametro "method" no form?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora