Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kelven

[Resolvido] pegar variavel de outro formulario com o metodo post?

Recommended Posts

gente quero saber como pego uma variavel de outro formulario com o metodo post por exemplo:


$quero_pegar_essa_variavel_aqui = 4;


eu quero pegar essa variavel em cima e chamar ela em outro arquivo salvo na mesma pasta, tem como pelo metodo poste?

eu fiz o teste assim e não deu certo:

$peguei = $_POST["$quero_pegar_essa_variavel_aqui"];

echo "$peguei";

se não tem como pegar assim podem me falar algum jeito de pegar essa variavel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passe por um campo oculto.

 

<?php
$quero_pegar_essa_variavel_aqui = 4;
?>
<form method="post" action="outroArquivo.php">
<input type="hidden" value="<?php echo $quero_pegar_essa_variavel_aqui;?>" />

<button type="submit">Enviar</button>
</form>

 

outroArquivo.php

<?php
$peguei = $_POST['$quero_pegar_essa_variavel_aqui'];

echo $peguei;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas eu preciso pegar pelo nome se for assim, porque no meu casa ta como se fosse assim:


$id= $resultado[id_cliente];

<td><input type=\"hidden\" name='$id' value='echo $id'> </td>


esse ID é porque eu to pegando o id no banco de dados e preciso que ele seja o nome de cada input para quando eu chamar ele chamar o ID do cliente.

 

$peguei = $_POST['$id'];
echo "$peguei";

o segundo arquivo tem que mostrar no echo a variavel que ta la no primeiro arquivo que é o ID do cliente,

entendeu ?

o que você sugere?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos aos poucos.

 

Primeiro que isso aqui echo "$peguei"; é desnecessário. Aspas no PHP são utilizadas geralmente para manipular strings diretamente, como por exemplo assim:

 

echo "uma string qualquer";

 

Uma variável por si só não precisa de aspas para ser exibida. Quando você quer misturar variaveis num texto, ai sim você usa aspas ou então concatena (melhor que utilizar aspas). Veja:

 

echo "olá meu nome é $nome";

 

Agora concatenando.

 

echo 'olá meu nome é ' . $nome;

 

Segundo que aspas simples são utilizadas para mostrar o valor literal das coisas (variáveis e etc).

Veja:

 

echo 'olá meu nome é $nome';

 

O exemplo acima irá imprimir: olá meu nome é $nome

Viu só, com aspas simples o valor literal é retornado e nenhuma variável é interpretada.

 

Então isso aqui $peguei = $_POST['$id']; não irá funcionar, pois irá pegar o valor literal de $id (que é $id hehe ). O correto seria assim:

 

$peguei = $_POST[$id];

 

Agooora sim, voltando a falar do seu problema.

Eu olhei a minha mensagem novamente e vi que esqueci de colocar o atributo name="" no input hehe, por isso não funcionou.

O correto é assim:

 

<?php
$id = 4;
?>
<form method="post" action="outroArquivo.php">
	<input type="hidden" name="id" value="<?php echo $id;?>" />

	<button type="submit">Enviar</button>
</form>

 

outroArquivo.php

$id = $_POST['id'];

echo $id;

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que eu não to usando php apenas no campo do value como você esta mostrando,

a minha tabela toda ta dentro do php, para ela gerar tabelas de acordo com o tanto de usuarios que tiver no banco de dados veja como é que esta:

<form action='cadastro_normal.php' method='post'>
 <?php
   $sql = "SELECT * FROM cadastronormal ";
   $query = mysql_query($sql);
  
  while ($resultado = mysql_fetch_array($query))
  {
         $id = $resultado[id_cliente];
		 
		 echo "
          <tr>
		  <td><input type=\"hidden\" name='id' value="echo $id;"> </td>
          <td> $resultado[nome_completo]</td>
          <td> $resultado[email]</td>
          <td><input type=\"submit\" name='$resultado[id_cliente]' value=\"Alterar\"> </td>
          <td><input type=\"submit\" name=\"excluir\" value=\"Excluir\"></td>
          </tr>";
  }

  
  ?>
  </form>

e a outra pagina esta assim olha:

 

<?php
include ("conexao.php");

$id = $_POST['id'];

echo $id;





?>

e não deu certo olha só o erro que deu

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/flycratr/public_html/cadastro/clientes.php on line 77

 

eu preciso pegar pelo nome do formulario porque o nome tem que ser o ID do cliente ai eu vou poder chamar no outro formulario todas as informações atravez da função em mysql que escolhe a linha quando o id do segundo arquivo que eu estou passando for igual ao id do banco de dados, que ai eu vou alterar somente a linha que eu quero alterar,

entendeu?

 

o que que da para fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que eu não to usando php apenas no campo do value como você esta mostrando,

a minha tabela toda ta dentro do php, para ela gerar tabelas de acordo com o tanto de usuarios que tiver no banco de dados veja como é que esta:

kelven é seguinte meu velho, não entendi direito o que voce quer fazer, porem posso te ajudar quanto a sintaxe, pois pude visualizar um erro grotesco de SINTAXE(forma correta de escrever suas instruções e expressões). o PHP só vai conseguir entender quando o código estiver escrito de forma correta. Pois bem vamos ao seu código.

vou detalhar e apontar os possiveis erros para que você possar corrigi-los ok.

 

{

$id = $resultado[id_cliente];

 

echo "

<tr>

<td><input type=\"hidden\" name='id' value="echo $id;"> </td>

<td> $resultado[nome_completo]</td>

<td> $resultado</td>

<td><input type=\"submit\" name='$resultado[id_cliente]' value=\"Alterar\"> </td>

<td><input type=\"submit\" name=\"excluir\" value=\"Excluir\"></td>

</tr>";

}

 

onde esta marcado de vermelho é o erro de sintax, eu não fiquei colorindo todo o código porque se apontar apenas um erro vai dar pra você entender... mas em todo código seu ai dentro dessa tabela se tiver (/"algumacoisa/") vai estar errado. no PHP você pode trablhar com aspas de duas formas usando as seguintes SINTAXES 1º(" ' ' ") ou 2º(' " " '). Exemplo 1º: echo "<input type='text' name='id' value='algum valor' />" neste primeiro exemplo ultilizo primeiro as ÁSPAS DUPLAS e dentro dela só posso trabalhar com ASPAS SIMPLES. no Exemplo 2º é o contrário do Exmplo 1º veja como ficaria:echo '<input type="text" name="id" value="algum valor" />'. pronto isso era só pra voce entender mesmo. Agora vamos ao seu godigo. de forma correta ficaria assim:

<form action="cadastro_normal.php" method="post">
 <?php
   $sql = mysql_query("SELECT * FROM cadastronormal");// aqui voce pode fazer a query em uma unica variavel.
  while ($resultado = mysql_fetch_array($sql)) //esta linha está correta.
  {
	$id = $resultado[id_cliente];
	//aqui eu fecho o delimitador de código do PHP
	?>
			<tr>
			<td><input type="hidden" name="id" value="<?php echo $id ?>"> </td>
			<td> <?php $resultado[nome_completo]?></td>
			<td> <?php $resultado[email] ?></td>
			<td><input type="submit" name="<?php $resultado[id_cliente] ?>" value="Alterar"> </td>
			<td><input type="submit" name="excluir" value="Excluir"></td>
			</tr>
	<?php //aqui eu abro o delimitador de código para poder fechar o WHILE 
  }//aqui fecho o WHILE
	//aqui fecho o PHP novamente
 ?>
  </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha aqui o que eu quiz dizer quando a tabela era dinamica:

 

http://www.flycratry.com/cadastro/clientes.php

 

é porque ele acrescenta uma linha para cada linha que tem no banco dedados dinamicamente.

e por isso que se as trs e tds não tiverem dentro do código em php não vai funcionar do jeito que eu preciso. entende?

 

ENTENDO SIM.

mas deixa eu te falar kelvem eu uso isso em um projeto de mestrado que eu desenvolvi pro meu professor de estrutura de dados, se você manter os códigos HMTL dentro do while ele vai retornar quantas vezes o while retornar, porque apesar dele estar fora das tags PHP ele faz parte do LOOP com voce pode ver no código que eu alterei eu abro e fecho o PHP logo em baixo no final do código somente para fechar o loop. Mas como eu disse na mensagem que lhe enviei você pode usar tudo dentro do PHP, porem você só poderá usar as aspas duplas logo no começo do seu ECHO e no fim, no meio onde esta o código HMTL você utiliza as aspas simples. mas se você tentar rodar o código do jeito que lhe enviei te garanto que vai funcionar... t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim vai retornar tudo que estiver dentro do LOOP(wihle{}), mas naum era isso que você qria gerar?. Como eu disse eu corrigi apenas a SINTAXE do seu código, pq você disse que estava apresentando erros, dessa forma que eu fiz nao apresentara erros, se o resultado não for o que você espera, ai alem do erro de SINTAXE você tambem tem um erro de SEMÂNTICA(sentido do código, retorno desejado etc..)

mais ai fica muito facil de alterar e ajustar. Fiz um exemplo bem facil pra você poder entender como funciona o html fora do PHP mas dentro do LOOP PHP ao mesmo tempo. pega esse código que estou postando aqui e joga ai no seu servidor local e roda ele pra você ver qual vai ser o resultado. Ele vai funcionar assim em qualquer coisa que você estiver fazendo seja retornando valores do banco de dados ou não.

ai se o que você quer retornar não são as tabelas e apenas as linhas, basta apenas voce colocar o LOOP(WHILE) para rodar no local especifico. Se o que voce quer retornar são só as linhas e mesmo assim não o consegue fazer com os exmplos que eu te dei ate agora posta ai falando o que você quer que eu reescrevo essa parte do código e posto aqui pra você OK.. t++

 

<?
$a = 1;
while($a <= 10){
$linha = $a;
?>
<h1>VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A <?echo $linha?>º VEZ QEU PASSO POR AQUI!</h1>
<h2> Note que aqui fora das tags do PHP eu utilizo apenas o código HTML</h2>
<hr />
<?
$a++;
}
?>

A SAÍDA PARA O CÓDIGO ACIMA SERÁ ESSA!

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 1º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 2º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 3º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 4º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 5º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 6º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 7º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 8º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 9º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

VOU PASSAR POR ESSE CÓDIO HTML 10 VEZES ESSA É A 10º VEZ QEU PASSO POR AQUI!

Note que aqui fora das tags do PHP eu utilizo apenas o código HTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo valeu.

 

teve um probleminha que eu vim perceber agora,

quando eu clico em alterar em qualquer um dos clientes,

na pagina de altera recebe o mesmo numero de id,

eu usei o código que você deu o que sera que é?

 

acho que é porque ele chama o primeiro que tem o nome do formulario como id, e como não é uma variavel ele só chama o mesmo numero para todos os formularios

 

gente é o seguinte eu quero que cada name do input que ta invisivel seja igual a id que esta no banco de dados e vocês colocaram ai como se o nome foce sempre o mesmo "id" no caso e eu preciso que seja assim o name do input invisivel "$id" mas eu não sei como é que eu chamo isso no outro formulario entenderam eu só preciso saber como é que chama isso no outro formulario.

 

agora eu consegui descobri como,

eu só coloquei o valor do id não em um campo invisivel mais sim em no campo de enviar ai deu tudo certo,

vlw galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.