Ir para conteúdo

POWERED BY:

Arquivado

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

donny_

Dois actions em um form.

Recommended Posts

Bom gente, tenho o seguinte código:

 

<form name="form1" method="POST" action="<?php $PHP_SELF; ?>" >
	<input type="text" name="nome" />
	<input type="submit" name="btn" value="Cadastrar"></input>
	<input type="submit" name="btn" value="Visualizar"></input>
</form>

<?php

switch($_POST['btn'])
{
	case "Cadastrar":
	header("Location: registrar.php");
	break;
	
	case "Visualizar":
	header("Location: ver.php");
	break;
}
?>

O que acontece, é que quando vai paga a pagina "ver.php" tenho uma variavel pegando o valor do campo "nome", e dei um echo nela, so que não apareceu o valor do campo "nome", tem algo errado... alguém poderia me dizer se a variavel não esta pegando o valor do campo por causa dessa linha "header...."... se alguém puder me ajudar, fico muito grato, obrigado a todos...

 

Consegui fazer em JS como no exemplo abaixo:

<html
<head>
  <script language="JavaScript">
   function Visualizar()
   {
	 document.nome_formulario.action="pagina1.html";
	 document.forms.nome_formulario.submit();
   }
  </script>
  <script language="JavaScript">
   function Cadastrar()
   {
	 document.nome_formulario.action="pagina2.html";
	 document.forms.nome_formulario.submit();
   }
  </script>
</head>
<form method=post name=nome_formulario>
	<input type=button onclick=Cadastrar() value=Cadastrar></input>
	<input type=button onclick=Visualizar() value=Visualizar></input>
</form>
</html>

ATT: gostaria de fazer em PHP... se alguem puder me ajudar fico muito grato... obrigado a todos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo ...

 

tava olhando ake, mas num vai aparecer o echo mesmo ...

 

se você quiser mostrar o nome no ver.php, por exemplo, pode usar o $_GET['nome'] no ver.php e mudar

header("Location: ver.php");

 

por isso:

 

header("Location: ver.php?nome=$nome");

 

 

Espero que tenha ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

feraser, vlw mesmo, mais entenda só, tenho vários campos no meu form, os submit seriam do tipo, CADASTRAR e VISUALIZAR, qd clicado em VISUALIZAR vai abrir uma outra pagina com os dados digitados nos campos entende? creio eu que passando os dados pela URL como você disse seriam meio prejudicial a quantidade de campos que se tem, no qual no campo url dos browser aceita somente até 255 caracteres. Obrigado e aguardo respostas. vlw mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente:

 

<form name="form1" method="POST" action="">
	<input type="text" name="nome" />
	<input type="submit" name="cad" value="Cadastrar">
	<input type="submit" name="vis" value="Visualizar">
</form>

<?php
if($_POST['cad']){
header("Location: registrar.php?dados=".base64_encode($_POST['nome']));
}else{
header("Location: ver.php?dados=".base64_encode($_POST['nome']));
}
?>
nas páginas para pegar os resultados faça:

 

<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
echo base64_decode($_GET['dados']);
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte, vlw pela dica, mais tb nao deu certo, abre a pagina "ver.php" direto, assim que entro na pagina onde ta o form, vou tentar ake, em JS ficou desse modo:

 

<script language="JavaScript">
   function Visualizar()
   {
	 document.nome_formulario.action="pagina1.html";
	 document.forms.nome_formulario.submit();
   }

   function Cadastrar()
   {
	 document.nome_formulario.action="../comerciominas/ver.php";
	 document.forms.nome_formulario.submit();
   }
  </script>

mais nao gostaria de usar JS pelo fato de poderem desativar o JS... ai gostaria de fazer em PHP mesmo... vlw pela dica, se puderem me ajudar fico muito agradecido.. vlw a todos até o momento....

Compartilhar este post


Link para o post
Compartilhar em outros sites

a forma como montou e a semantica estão errados

 

 

seria assim:

 

<form name="form1" method="POST" action="<?php echo basename( __FILE__ ); ?>" >
	<input type="text" name="nome" />
	<input type="submit" name="btn" value="Cadastrar"></input>
	<input type="submit" name="btn" value="Visualizar"></input>
</form>

<?php

if( isset( $_POST['btn'] ) ){

	switch($_POST['btn'])
	{
		case "Cadastrar":
		include("registrar.php");
		break;
		
		case "Visualizar":
		include("ver.php");
		break;
	}

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom, tentei dessa forma, só que dai abre a pagina ver.php embaixo da pagina onde ta o form, ou seja, fica as duas paginas em uma só... :S.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom, tentei dessa forma, só que dai abre a pagina ver.php embaixo da pagina onde ta o form, ou seja, fica as duas paginas em uma só... :S.

Claro amigão, o que você esperava se os scripts estão na mesma página ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que você nao quer usar javascript

 

não há problema nenhum no uso de javascript

 

se um determinado PC está com javascript desabilitado é porque o usuário fez isso deliberadamente

 

o que não recomenda-se é o uso de eventos restritos à política de segurança, como controles ActiveX e manipulações de objetos externos

 

a sua questão pode ser resolvida assim

 

 

<form name="form1" method="POST" action="">

<input type="text" name="nome" />

<input type="submit" name="btn" value="Cadastrar" onclick="this.form.action=registra.php"></input>

<input type="submit" name="btn" value="Visualizar" onclick="this.form.action=ver.php"></input>

</form>

simples...

 

 

se quiser fazer de outros modos mirabulantes, pesquise por socket ou curl ou funções http

 

aqui mesmo no forum existem centenas de topicos relacionados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom gente, tenho o seguinte código:

 

<form name="form1" method="POST" action="<?php $PHP_SELF; ?>" >
	<input type="text" name="nome" />
	<input type="submit" name="btn" value="Cadastrar"></input>
	<input type="submit" name="btn" value="Visualizar"></input>
</form>

<?php

switch($_POST['btn'])
{
	case "Cadastrar":
	header("Location: registrar.php");
	break;
	
	case "Visualizar":
	header("Location: ver.php");
	break;
}
?>

Não pode fazer algo do tipo:

 

 

<form name="form1" method="POST" action="<?php $PHP_SELF; ?>" >
	<input type="text" name="nome" />
	<input type="submit" name="btn" value="Cadastrar"></input>
	<input type="submit" name="btn" value="Visualizar"></input>
</form>

<?php

switch($_POST['btn'])
{
	case "Cadastrar":
	header("Location: registrar.php");
	break;
	
	case "Visualizar":
	header("Location: ver.php?nome=$_POST[nome]");
	break;
}
?>

ai em ver.php pega o nome com $_GET['nome']

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

<?php
if(isset( $_POST['btn'] ) ) {
	switch($_POST['btn'])
	{
		case "Cadastrar":
		include("registrar.php");
		break;
		
		case "Visualizar":
		include("ver.php");
		break;
	}
} else {
?>
	<form name="form1" method="POST" action="<?php $PHP_SELF; ?>" >
		<input type="text" name="nome" />
		<input type="submit" name="btn" value="Cadastrar"></input>
		<input type="submit" name="btn" value="Visualizar"></input>
		</form>
<?php
}
?>

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.