Ir para conteúdo

POWERED BY:

Arquivado

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

egalauber

[Resolvido] um GET e dois POST para a mesma página

Recommended Posts

Pessoal... seguinte...

Tenho uma página com um formulário de busca q chama a página “acessandobd.php”. Neste formulário eu envio dois campos “preco” e “secao” pelo método POST.

 

Na página “acessandobd.php” eu recebo normalmente:

 

$TestaSecao=$_POST["secao"];
$TestaPreco=$_POST["preco"];

Nesta página eu faço uma paginação dos resultados. Sendo q os links dessa paginação chamam a página “acessandobd.php” de novo, envia uma variável pelo método GET e chama uma função “Envia()”.

for($i=0;$i<$TotalPaginas;$i++){
$proxima = $i * $qtd_pagina;
?><a href="acessandobd.php?proxima=<?php echo $proxima;?>" onClick="return Envia()"><?php echo $i;?></a><?php
}
Mas aí é q vem o problema. Nesta página eu tenho as duas linhas recebendo “secao” e ”preco” então eu tenho q criar um formulário e enviar “secao” e ”preco” de novo. Daí eu criei o formulário usando o “hidden” e criei uma função em JavaScript para executar o formulário.

 

<script>
function Envia(){
document.formulario.submit();
}
</script>

<form name="formulario" method="post" action="acessandobd.php">
<input type="hidden" name="secao" value=<?php echo "'".$TestaSecao."'";?>>
<input type="hidden" name="preco" value=<?php echo "'".$TestaPreco."'";?>>
</form>

Só q quando eu clico no link da paginação ele chama a página mas a página não recebe nem “secao” e nem “preco”.

 

Se eu não chamar a função “Envia()” no link q tá dentro do “for”, e chama-la usando o “onunload”, a página recebe “secao” e “preco” mas não recebe o “proxima” q vai pelo GET.

 

<body onUnload="return Envia()"></body>

Entenderam o meu problema?

Eu preciso mandar uma variável pelo método GET e duas pelo método POST para a mesma página.

To fazendo do jeito certo??

Ajudem aí!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar campos hidden no form, ou passar por GET mesmo, no action:

<form name="formulario" method="post" action="acessandobd.php?var1=valor&var2=valor2">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar campos hidden no form, ou passar por GET mesmo, no action:

<form name="formulario" method="post" action="acessandobd.php?var1=valor&var2=valor2">

Então, eu criei os campos hidden mas veja o q acontece:

 

no link eu chamo a página e passo um valor pelo GET:

"acessandobd.php?proxima=<?php echo $proxima;?>"

 

só q quando eu envio o form ele substitui isso, pq no form não tem o GET:

<form name="formulario" method="post" action="acessandobd.php">

 

então ele tá enviando o action do form "acessandobd.php" ao inves de enviar o q está no link "acessandobd.php?proxima=<?php echo $proxima;?>"

 

eu preciso q ele envie isso: "acessandobd.php?proxima=<?php echo $proxima;?>" + o form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tem como eu dizer q o action do form tem q ser igual ao link?????

 

tipo:

 

<form name="formulario" method="post" action="link" ou "href">?????????

 

sei lá....

algo desse tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterações on-the-fly podem ser feitas com javascript

 

escopo

 

<script language=javascript>

OBECT.action = "value";

</script>

pesquise também por eventos de click

 

consulte o forum JavaScript

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterações on-the-fly podem ser feitas com javascript

 

escopo

 

<script language=javascript>

OBECT.action = "value";

</script>

pesquise também por eventos de click

 

consulte o forum JavaScript

to tentando assim:

 

for($i=0;$i<$TotalPaginas;$i++){

$proxima = $i * $qtd_pagina;

$paraForm = (string) ("acessandobd.php?proxima=" . $proxima);

?><a href="acessandobd.php?proxima=<?php echo $proxima;?>" onClick="Envia(<?php echo $paraForm;?>)"><?php echo $i;?></a>

<?php

}

?>

 

<script>

function Envia(actionForm){

document.formulario.action = actionForm;

document.formulario.submit();

}

</script>

 

<form name="formulario" method="post">

<input type="hidden" name="secao" value=<?php echo "'".$TestaSecao."'";?>>

<input type="hidden" name="preco" value=<?php echo "'".$TestaPreco."'";?>>

</form>

 

<body onUnload="return Envia()"> </body>

 

 

 

mas não tá dando...

aparece a página vazia apenas com a palavra "undefined"

será q o caminho é esse mesmo??

ajuda aí galera!!!...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é quase isso..

 

sugiro que preste atenção no que é PHP e no que é HTML / JavaScript / CSS ..

 

tente mais uma vez, se ficar muito dificil fale aí

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer tudo por POST:

 

<script language="javascript" type="text/javascript">
function fPaginar(formularioID, proxima)
{
	if (document.getElementById('proxima'))
		document.getElementById('proxima').value=proxima;
	else
		window.document.formulario.proxima.value=proxima;
	
	if (document.getElementById(formularioID))
		document.getElementById(formularioID).submit();
	else
		window.document.formulario.submit();
}
</script>

<form name="formulario" id="formulario" method="post" action="acessandobd.php">

<?php
for($i=0;$i<$TotalPaginas;$i++)
{
	$proxima = $i * $qtd_pagina;
?>
	<a href="#" onclick="fPaginar('formulario', <?=$proxima?>);"><?php echo $i;?></a>
<?php
}
?>

<input type="hidden" name="proxima" id="proxima" value="" /> <!-- Aqui você pode colocar o valor tratado de próxima, igual fez com sessao e preco -->
<input type="hidden" name="secao" value="<?=$TestaSecao?>" />
<input type="hidden" name="preco" value="<?=$TestaPreco?>" />
</form>

[x]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer tudo por POST:

 

<script language="javascript" type="text/javascript">
function fPaginar(formularioID, proxima)
{
	if (document.getElementById('proxima'))
		document.getElementById('proxima').value=proxima;
	else
		window.document.formulario.proxima.value=proxima;
	
	if (document.getElementById(formularioID))
		document.getElementById(formularioID).submit();
	else
		window.document.formulario.submit();
}
</script>

<form name="formulario" id="formulario" method="post" action="acessandobd.php">

<?php
for($i=0;$i<$TotalPaginas;$i++)
{
	$proxima = $i * $qtd_pagina;
?>
	<a href="#" onclick="fPaginar('formulario', <?=$proxima?>);"><?php echo $i;?></a>
<?php
}
?>

<input type="hidden" name="proxima" id="proxima" value="" /> <!-- Aqui você pode colocar o valor tratado de próxima, igual fez com sessao e preco -->
<input type="hidden" name="secao" value="<?=$TestaSecao?>" />
<input type="hidden" name="preco" value="<?=$TestaPreco?>" />
</form>

[x]´s

pode ser....

 

mas me explica esses três aquí:

getElementById // pra q q serve isso???

id="formulario" // o q é o id do formulário??

href="#" // no lugar desse "#" é pra colocar a URL ou deixa isso?? pra q q ser esse "#"

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas me explica esses três aquí:

getElementById // pra q q serve isso???

id="formulario" // o q é o id do formulário??

href="#" // no lugar desse "#" é pra colocar a URL ou deixa isso?? pra q q ser esse "#"

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif getElementById(); - JavaScript, Serve para pegar o ID de um determinado item,objeto. que no caso está pegando o ID do elemento "proximo" que é o seu campo hidden.

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif id="formulario" - HTML, Seta um ID ao elemento formulário, caso precise pegar ID com o getElementById();

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif href="#" - HTML, TAG usada para links, como ali está usando Javascript, não é preciso ser colocado link ai pois o que será executado e a função ONCLICK do JavaScript.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae egalauber.. resolvido o problema ?

 

[x]´s

 

Grande Rafael Mussi!!!!.....

 

depois de 5 dias agarrado nisso... consegui resolver o problema!!!!

eu só tive q voltar na página anterior e colocar essa linha no formulário:

 

<input name="proxima" type="hidden" value="0">

 

para q "proxima" recebesse um primeiro valor!!

 

xuxu beleza!!!!!!

vlw cara!!!!!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.