Clipper On Line • Ver Tópico - form action passando referência

form action passando referência

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

Moderador: Moderadores

 

form action passando referência

Mensagempor cjp » 31 Jan 2015 21:10

Existe algum erro nesta forma de passar uma variável como referência num form action?

 echo "<form action='responder.php?id='".($Arq)."' method='post'";


Estou tentando passar a variável $Arq como referência para o próximo php, sendo que ela já foi recebida como referência de um php anterior. A primeira passagem, do primeiro para o segundo php, está funcionando corretamente. Mas a segunda passagem, do segundo para o terceiro php, não está funcionando; está passando o id em branco. No que estou errando?

O segundo php está assim:

<html>
<head>
  <title>Listando tarefa</title>
</head>
<body>
<?php
$Arq = $_GET['id'];

$banco = "xxxxxx";
$usuario = "xxxxx";
$senha = "xxxxx";
$hostname = "mysql.xxxx.com.br";

echo '<font size="38">';

$conn = mysql_connect($hostname,$usuario,$senha);
if (!$conn) {echo "Não foi possível conectar ao banco MySQL.
"; exit;}

$sel=mysql_select_db($banco,$conn);
if (!sel)
   {
    echo "Não foi possível abrir o banco de dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
$sql="SELECT nrtarefa,date_format(data,'%d/%m/%Y'),hora,assunto,tarefa FROM tarefas WHERE nrtarefa='".$Arq."'";
$rs=mysql_query($sql);
if (!$rs)
{exit("Error in SQL");}

$nrec = mysql_num_rows($rs); //total de registros

echo "Tarefa: ".$Arq;
      echo '<br>';
echo "Total de registros: ".$nrec;
      echo '<br>';
echo "Assunto: ".mysql_result($rs,$i,3);
      echo '<br>';
    
while (mysql_fetch_row($rs))
{
  echo "<tr>";
 
  $a=mysql_result($rs,$i,4);
  //$data=new DateTime; //mysql_result($rs,$i,1);
      echo '<br>';
     if(strstr($a,"Resposta"))
         {   
        echo mysql_result($rs,$i,1);
       //echo $data->format( 'd-m-Y' ), "/n";
       echo " às ";
        echo mysql_result($rs,$i,2);
       echo " horas: ";
       }
     echo mysql_result($rs,$i,4);

$i++;
}
mysql_close($conn);
echo "<form action='responder.php?id='".($Arq)."' method='post'";
echo "width='69%' style='height:240px;'>";
echo "<br>";
echo "<br>";
echo "<input size='45' style='font-size:180px' type='submit' id='Responder' value='Responder'>";
echo "</font>";
echo "</form>";
?>

</body>
</html>


E o terceiro php está assim:

<html>
<head>
  <title>Responder tarefas</title>
</head>
<br>
<body onbeforeunload='reset_combo()'>
<?php
$Arq= urldecode($_GET['id']);
$tid=$Arq;
?>
  <form action="cadresp.php?id=".($tid)." method="post"
width="69%" style='height:200px;'>
   <font size="27">
   <label>Resposta:</label>
   <br>
   <input size="40" type="text" name="filtro" id="filtro" style="font-size:150px" value="Digite aqui a resposta" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Digite aqui a resposta';}">
   <br>
   <br>
   <input size="40" style="font-size:150px" type="submit" id="Enviar" value="Enviar">
   <BR>
   </font>
  </form>
</body>
</html>


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

form action passando referência

Mensagempor Toledo » 01 Fev 2015 08:19

cjp escreveu:Existe algum erro nesta forma de passar uma variável como referência num form action?

O correto seria:
echo '<form action="responder.php?id='.$Arq.'" method="post"';

Não que a troca de aspas simples por aspas duplas vai resolver, mas geralmente em código HTML sempre se usa aspas duplas, por este motivo eu troquei as aspas.
Mas o erro estava nos ( e ) que você estava usando e principalmente na aspas simples que estava depois de id= (id='".($Arq)."').

Agora, no seu terceiro PHP, o correto seria:
<form action="cadresp.php?id=<php echo $tid; ?>" method="post"


Uma pequena observação no seu segundo PHP, na linha 47 tem echo "<tr>";, então se você vai usar o comando <tr>, obrigatoriamente você teria que ter um <table> e seu respectivo </table>, um <td> e seu respectivo </td> e também o </tr>. Não sei como o navegador vai interpretar um <tr> sozinho, mas provavelmente deve ser ignorado.

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

form action passando referência

Mensagempor cjp » 01 Fev 2015 14:11

Funcionou, meu caro. Muito obrigado.

E o tr estava sobrando mesmo.
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

form action passando referência

Mensagempor cjp » 28 Mar 2015 14:25

Colegas, desculpem, mas estou de novo tendo dificuldade com essa situação de passar variáveis por referência.

Tenho um PHP assim:

<html>
<head>
  <title>Cadastrando preço de produtos</title>
</head>
<?php
$Prod = $_GET['id'];
$Prm= $_POST['prm'];

echo "Produto: ".$Prod;
echo "<br>";
echo "Preço máximo: ".$Prm;
echo "<br>";

echo "<body style='color: rgb(0, 0, 0); background-color: rgb(255, 204, 153)'";
echo "alink='#000099' link='#000099' vlink='#990099'>";
echo '<form action="cadpreco.php?id='.($Prod).($Prm).'" method="POST"> <input type="hidden">';
?>

<left>
<table align="left" border="0" cellpadding="0" cellspacing="0"
width="49%" style='height:40px;'>
<form action="filtrar.php" method="post">
<BR>
   <tr>
   <font size="38">
    <label>Valor:</label>
    <input type="number" step="any" style="font-size:60px" name="valor">

   </tr>
    <td> <input style="font-size:130px" name="submit" value=" Enviar " type="submit">
<BR>
   </tr>
  </tbody>
</table>
</left>
</form>
</body>
<?php
echo "<br>";
echo '<form action="comprar.php"';
echo "width='65%' style='height:150px;'>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<input size='35' style='font-size:120px' type='submit' id='Voltar' value='Voltar'>";
echo "</form>";
?>
</html>


O php está assim:

<html>
<head>
  <title>Cadastrando preço do produto</title>
</head>
<body>
<?php
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$hostname = "mysql.xxx.com.br";
$vl= ($_POST['valor']);
$prod = ($_POST['$Prod']);
$prod2 = urldecode($_GET['$Prod']);
echo "Produto2: ".$prod2;
echo "<br>";

echo "Produto: ".$prod;

$conn = mysql_connect($hostname,$usuario,$senha);
if (!$conn) {echo "Não foi possível conectar ao banco MySQL.
"; exit;}

$sel=mysql_select_db($banco,$conn);
if (!sel)
   {
    echo "Não foi possível abrir o banco de dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }

$sql2="UPDATE compras SET prmercador=".$vl.",dtmercador='".date('Y-m-d')."',marcacao=' ',data='".date('Y-m-d')."' WHERE produto='".$prod."'";

   $result = mysql_query($sql2);
if (!$result)
   {
    echo "Não foi possível incluir os dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
   }
else
   echo "<font face='arial' color='red' size='26'>";
   echo "Preço (".$vl.") do produto ".$prod." foi inserido com sucesso";

echo '<form action="comprar.php"';
echo "width='69%' style='height:240px;'>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<input size='45' style='font-size:180px' type='submit' id='Voltar' value='Voltar'>";
echo "</form>";
   
?>


No primeiro php, que já recebe a variável $prod de outro php por referência, está funcionando corretamente. Mas no segundo não. Noto pelo link que o primeiro até está passando corretamente a variável. Então, creio que o erro esteja na forma de pegar a variável. Já testei de todas as formas, com GET, com POST, com urldecode ou não. Mas não funciona de forma alguma.

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

form action passando referência

Mensagempor ANDRIL » 28 Mar 2015 17:20

Na sua linha 18, voce abriu um form e não tem a tag de fechamento. Logo abaixo no seu codigo, abriu novos forms sem que fechasse o primeiro, isso pode estar dando um submit porem sem passar o conteúdo que voce deseja. Outra, em PHP evito usar form dentro de form, cada um tem que ter seu espaço separado.

echo '<form action="cadpreco.php?id='.($Prod).($Prm).'" method="POST"> <input type="hidden">';


Não há problema algum receber e passar parametros de uma pagina a outra, alias, isso é necessario em PHP. O que deve ter é algum erro no codigo que impede essa passagem corretamente, geralmente no HTML passa batido, por que no PHP daria RUNTIME. Reveja o código e a lógica.

Ate+.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar de usuário

ANDRIL
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1270
Data de registro: 06 Jul 2004 00:44
Curtiu: 12 vezes
Mens.Curtidas: 46 vezes

form action passando referência

Mensagempor cjp » 28 Mar 2015 17:31

Realmente estava faltando o /form nessa linha. Corrija.

Mas ainda assim não está funcionando a passagem da variável. E eu não sei como resolver isso.
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

form action passando referência

Mensagempor cjp » 30 Mar 2015 14:11

Pessoal, eu escrevi errado na última mensagem "Corrija". Quis dizer "Corrigi". Peço desculpa pelo erro.

Ainda preciso da ajuda de vocês para resolver este problema, por favor.
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 13 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