Clipper On Line • Ver Tópico - formulário com "get" e "prompt" em PHP

formulário com "get" e "prompt" em PHP

Discussão sobre outras linguagens de programação.

Moderador: Moderadores

 

formulário com "get" e "prompt" em PHP

Mensagempor cjp » 21 Jun 2014 21:11

Caros colegas,

Gostaria de saber se é possível fazer um formulário em PHP com duas formas diferentes de entradas de dados, no mesmo formulário, um à semelhança do @...get do Harbour, e outro à semelhança do @...prompt do Harbour.

Eu fiz assim:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Recado</title>
</head>
<?php
$arec="teste";
$aDst="A";
?>
<body style="color: rgb(0, 0, 0); background-color: rgb(255, 204, 153);"
alink="#000099" link="#000099" vlink="#990099">
<form action="criarec2.php?arec=".$arec." method="post"> <input type="hidden">Digite o seu recado:<br>
  <br>
  <br>
  <center>
  <table align="center" border="0" cellpadding="0" cellspacing="0"
width="39%">
  <form action="filtrar.php" method="post">
   <label>Escolha o destinatário: </label>
   <select name="aDst" id="aDst">
<option value="U">Marina</option>
<option value="Y">Camylla</option>
<option value="G">Rodrigo</option>
    <tbody>
      <tr>
        <td>Recado:<br>
        <input size="150" name="recado"></td>
      </tr>
        <td> <input name="submit" value=" Enviar " type="submit">&nbsp;
        <input name="reset" value=" Limpar " type="reset"></td>
      </tr>
    </tbody>
  </table>
  </center>
</form>
</body>
</html>


Aparentemente está tudo funcionando perfeitamente. O problema é que não estou conseguindo pegar, no php seguinte (criarec2.php), as duas variáveis. A variável aDst, que está no "prompt", funciona normalmente. Mas a variável $arec, que está no "get" não.

Sei que é possível passar duas variáveis ao mesmo tempo, mas acho que a forma que estou fazendo não está correta.

Alguém me ajuda?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

formulário com "get" e "prompt" em PHP

Mensagempor Toledo » 22 Jun 2014 09:47

cjp escreveu:Gostaria de saber se é possível fazer um formulário em PHP com duas formas diferentes de entradas de dados, no mesmo formulário, um à semelhança do @...get do Harbour, e outro à semelhança do @...prompt do Harbour.

Sim, você pode usar várias formas diferentes de entrada de dados num mesmo formulário, quantas forem necessários.

cjp escreveu:Aparentemente está tudo funcionando perfeitamente.

Você tem que agradecer muito ao seu navegador, que está conseguindo interpretar parcialmente o seu código.

No Harbour quando vamos escrever um PRG, temos que nos preocupar com a estrutura lógica dos comandos, por exemplo:

Function Main()
tk=0
Do While tk!=27
  tk:=inkey()
  if tk==-1
    //faz alguma coisa
  else
    //senão faz outra
  endif
Enddo
Return Nil

Cada comando de estrutura de controle tem que ter um início e um final, é o caso dos comandos Do While...Enddo, If...else...endif, Do Case, For...Next, etc. Se você esquecer de finalizar um destes comandos de controle, com certeza na hora da compilação vai ocorrer um erro.

Bom, no HTML e no PHP também temos que tomar cuidado com esta estrutura de controle, alguns comandos também tem um início e o seu final correspondente. Se tem um <html> então vai ter que ter um </html>, se tem um <table> tem que ter um </table>, etc.
Outra coisa é que num arquivo PHP podemos misturar códigos PHP e também HTML, mas sempre se preocupando que o código PHP tem que ficar entre <?php e ?>.

Então vamos analisar o código que você postou:

1 - Na linha 6 você está iniciando o código PHP e na linha 9 você está encerrando, então tudo que estiver fora destas linhas é considerado código HTML. Mas na linha 12 você está usando a variável $arec que é um código PHP. Apesar que neste seu código não seria necessário passar esta variável, pois o conteúdo que você precisa está em campos do formulário, então o método de passam de parâmetros é diferente (método Post). Lembra???? já vimos isto em um outro tópico!
Bom, independente se seria necessário ou não a passagem desta variável $arec, mas o problema é que por ser uma variável de um código PHP, então obrigatoriamente ela teria que estar entre <?php e ?>.
Então, se fosse necessária, o correto esta linha 12 teria que ficar assim:
<form action="criarec2.php?arec=<?php echo $arec; ?> method="post"> <input type="hidden">Digite o seu recado:

Mas como disse, a passagem desta variável é desnecessária, então nesta linha 12 você teria que trocar "criarec2.php?arec=".$arec." por "criarec2.php"

2 - na linha 19 você está usando um tabela (<table>), que tem uma certa estrutura, onde temos que incluir linhas (<tr>) e colunas (<td>), por exemplo:

<table>
   <tbody>
      <tr>
         <td>
            //aqui vai o conteúdo da coluna
         </td>
      </tr>
   </tbody>
</table>

Então, além da estrutura que deve ser respeitada, qualquer conteúdo dentro da tabela deve ficar entre <td> e </td>. Observe que no seu exemplo tem alguns campos logo após o <table> (linhas 21 a 26).

3 - quando você for usar um formulário (form) cujo campos estão dentro de uma tabela, então o certo é abrir o <form> antes do <table>.

4 - na linha 12 você está abrindo um <form> chamando o arquivo criarec2.php e na linha 21 está abrindo um outro <form> chamando o arquivo filtrar.php. Ai na linha 39 tem apenas um </form>. Por ai dá para notar que você não está obedecendo nadinha a estrutura de controle dos comandos.
A melhor coisa neste caso é fazer corretamente a indentação do seu código, assim fica mais fácil saber onde começa um comando e onde ele termina. Para cada <form> tem que ter um </form> correspondente.

5 - na linha 33 você está usando um <td>, mas este comando só pode vir dentro de um <tr>... </tr>. Na linha 35 você está fechando o </tr>, mas não tem o <tr> correspondente.

6 - na linha 31 você está colocando um campo (<input>) onde o usuário vai digitar a sua mensagem, e neste <input> você colocou o nome de recado (name="recado"). Então no criarec2.php para recuperar o conteúdo deste campo, você tem que usar este nome "recado", por exemplo: $recado = $_POST['recado']

Bom, o caminho é este, então o melhor a fazer é a indentação correta do código e corrigir a estrutura de controle dos comandos. Além é claro de decidir qual form usar, o que chama filtrar.php ou criarec2.php.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

formulário com "get" e "prompt" em PHP

Mensagempor cjp » 23 Jun 2014 00:18

De fato, Toledo, revendo meu código, depois de ver o que vc escreveu, podemos chamar o código de Frankstein. Tava feia a coisa.

Acertei e funcionou. Muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes




Retornar para Outras linguagens de programação

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro