Formulário method POST, Clique em próxima página apagua valores

1. Formulário method POST, Clique em próxima página apagua valores

Allan Cristhian Kath Kipfer
akipfer

(usa Ubuntu)

Enviado em 13/06/2012 - 16:25h

poise...
estou trabalhando em meu site, e me ocorreu algo que não consigo resolver...
favor acessar...(de preferencia com Google Chrome, ainda não o configurei para outros navegadores...espero compreensão )
http://suacidadeonline.com.br/timbo/classificados/info_produtos.php?menu=home&a=56
ao entrar na pagina vera uma quantidade de botoes do lado esquerdo, do meio pra baixo maios ou menos...
procure os referente a cores...
selecione Prata(ele tem 6 anúncios por enquanto...)uso ele pra testar, e facilitar
clica em (Prata) e vera que ele traz 2 carros dos 6, ok, mas se eu clicar em proximo, ele perde o post...
não achei uma solução ainda, e o cURL parece mt coisa pro meu caminhão ainda, estou pouco tempo com PHP, se é que cURL serverir....
alguem sabe oque poderia ser feito aqui?
Desculpa o texto enorme, mas foi a melhor maneira para voces entenderem...
novamente, se possivel usar Chrome, pois não ajustei ele para outros navegadores ainda...

pensei em usar method GET[''] no formulário, mas como pode ver, ele ja tem na URL o GET[''] menu e o GET a que seria id...
se eu usar GET[''] ele sobrescreve os $_GET['menu'] e $_GET['a'] ja utilizados, se ele n perdesse, talvez eu teria chance


Sugestões bem vindas, sempre que possivel, só faz bem né hehe

Abraços...


  


2. Re: Formulário method POST, Clique em próxima página apagua valores

Khal
valtingojer

(usa openSUSE)

Enviado em 13/06/2012 - 19:22h

Não entrei na página mas pelo que entendi você quer manter as informações entre vários steps(paginas) diferentes.
eu costumo receber o post e gardar em uma variavel de sessão ($_SESSION['minhaVariavel'] = $_POST['variavelRecebida'])
para isso você tem de iniciar uma sessão session_start();

Mas tem muitas soluções que você pode aplicar, como criar campos ocultos que vão carregar sua variavel.

trabalhar com frames

já vi um artigo falando sobre um recurso específico para esta finalidade, mas não vou lembrar pois só li por cima além de nunca ter aplicado e fazer um certo tempo que vi.

mas opções é o que não faltam, só soltar a imaginação.

espero ter ajudado. ;)


3. Re: Formulário method POST, Clique em próxima página apagua valores

Allan Cristhian Kath Kipfer
akipfer

(usa Ubuntu)

Enviado em 13/06/2012 - 19:45h

uhm, okay...
a questão é que no momento não me vem novas ideias de mudar o sistema sem fazer grandes mudanças sabe...
se eu pudesse aplicar o GET sem perder os GETs ja utilizados...
ex:
pagina1.php?a52&menu=home&p=2
apos usar o form via GET, ele me joga assim...

EX: form...a estrutura abaixo não esta exata, só para melhor compreensão...


$querypro = "SELECT produto FROM $info_tabela WHERE id_usuario = '$infoid' GROUP BY produto ";
$qtr_pro = mysql_query($querypro);
$i = 1 ;
while($linha_pro = mysql_fetch_array($qtr_pro) ){

if($i < $loop){

echo '
<input type="submit" name="produto" value="'.$linha_pro['produto'].'" style = " width:105px; cursor:pointer;cursor:hand; color:'.$info_cor_texto_menu.'; background:url(uploads_fundo/'.$infoimagem_menu.')"/>';

bla bla bla bla
}
bla bla bla
}
como da pra ver, ele repete conforme a quantidade de cores diferente que há no BD...
e se eu clicar na cor ele vai, pq ha um if(isset($_POST['produto'])){
faz XXX
}
mas ao clicar no link "a href" pagina 2, ele perde o post da memoria...ja tentei session mas não deu...
ou fiz errado
não sei dai


4. Re: Formulário method POST, Clique em próxima página apagua valores

Khal
valtingojer

(usa openSUSE)

Enviado em 13/06/2012 - 23:55h

Tah certo, olhei o link e acho que entendi o que você quis dizer...
sim. ele perde o post porque quando você clica em prox, ele usa um link comum e o post só é enviado se for via formulario

vamos ver algumas soluções mais simples...

1) você pode mudar os links (pg 2,3,...,n) por submits de formulario post, assim ele mantém o post.
2) você pode por uma condição na página para verificar se existe o post (ex. if(isset($_POST['cor'])){}) e caso não exista o post (else) ele busca pelos parâmetros de url, mas neste caso cada "proximo" tem que ter todos valores necessários para nova busca. E pelo que eu vi no seu site, teria que reformular muita coisa na linkagem dos menus.
3) mudar a mecanica do menu (que não leva a mau mas ta feio pakas xD), e fazer o menu ser link normal, de modo que toda a busca do site seja atravez de parametros de url.
4) vamos ver o que mais...
da pra trabalhar nas sessoes.... mas vc tem que abrir sessão em cada página... ficaria +/- assim
vc da store em todas as variaveis de pesquisa como variavel de sessão.
e usa o parametro da sua pagina "p=2,p=3" para trabalhar junto com o que vc tem stored na sessão.


Nota pessoal.
mesmo dando trabalho, recomendo mudar o menu por N motivos.
1) usabilidade: o camarada que estiver usando o site, não vai gostar de clicar no botão voltar e ter uma página de que expirou porque não está enviando via formulario.
2) o trabalho curto, medio e longo prazo compensa pq vai ficar mais facil de você dar manutenção padronizando parametros de url para a busca, estilo google >>www.google.com/search?q=teste<< isso permite que vc possa linkar de maneira simples qualquer parte do site a uma pesquisa, permite que um cliente que tenha um olho um pokinho informatizado faça buscas simples.
3) mata seu problema easy :)


5. Re: Formulário method POST, Clique em próxima página apagua valores

Allan Cristhian Kath Kipfer
akipfer

(usa Ubuntu)

Enviado em 14/06/2012 - 01:55h

Obg pela resposta
mas assim, qual então seria a mais ideal?
e não entendo do menu que ta feio, o porque exatamente...
Pode falar que estou aberto a sugestões...

Pelo que entendi, seria usar linkagem href mesmo, com gets mas sem formulario...para evitar de que, quando o usuário voltar a pagina, para n mostrar a mensagem 'Tem certeza que deseja sair da pagina, podera perder dados bla bla bla' ou do menu de cima, HOME contato, comentarios e tal, ou menus das cores/produtos/fabricante(o que esta me dando problemas...?)
ah visualiza com chrome tbm, não fiz nada para outros browsers ainda...
abraços e obg desde já.
ps: se poder me dar um EX mais explicado, não O tutorial, mas um fio da meada se me entende...
Abraços novamente...Mt obg.!



6. Re: Formulário method POST, Clique em próxima página apagua valores

Khal
valtingojer

(usa openSUSE)

Enviado em 14/06/2012 - 14:02h

certo vamos por partes então,
para criar o menu, acredito que vc tenha uma rotina do tipo....

while(...){
echo "<input ...";
}

se for esse o caso é bem simples, você usa <a href="nomeDaPagina.php?termoDePesquisa1=resultado1&termoDePesquisa2=resultado2... para o numero de termos que você precisar.

se o menu for montado manualmente, da mesma maneira você vai substituir os inputs pelos parâmetros

exemplo prático.

um menu com marca de carros que traz o resultado dos carros daquela marca existentes na tabela carros.

Item do menu wolksvagem

<a href = 'pesquisa.php?marca=wolksvagem&pagina=1'> wolksvagem </a> /*Desta maneira voce vai encaminhar para pagina de busca com os parametros necessários para sua pesquisa*/

//dentro da página de pesquisa vou receber esses valores e fazer a busca, no exemplo vou exibir 10 itens por página.

$marca = $_GET['marca']; //parametro da marca a ser pesquisada
$pagina = $_GET['pagina']; //parametro da pagina em que esta

//determinando limite de 10 itens
$itemMax = $pagina * 10;
$itemMin = $itemMax - 10;

$query = "SELECT * FROM carros WHERE marca = '$marca' LIMIT $itemMin, $itemMax";
$result = mysql_query($query); $dados = mysql_fetch_assoc($result); $linhas = mysql_num_rows($result);


if($rows == 0){die("Nenhum item a ser exibido");}

do{

echo "modelo do carro: ".$dados['modelo'];
/* aqui você vai pondo todas informações que quer exibir do item */

}while($dados = mysql_fetch_assoc($result));


para referenciar prox página você pode usar o próprio get

$proxPag = $pagina + 1;

echo "<a href = 'pesquisa.php?marca=$marca&pagina=$proxPag'>";

esse é um funcionamento básico do recurso, você terá que tratar situações como "existe uma próxima página de resultados?"
"existe uma página anterior de resultados?"

coisas básicas para ele não ter infinitas páginas sem resultado, colocar alguns filtros para não fazerem uma busca que "estoure"
seu banco.

mas passo a passo

quanto ao chrome o php é server side, não importa onde você roda, ele vai rodar igual
agora elementos como javascript, css terão de ser tratados, isso você executa em varios navegadores e vê onde não funciona
algum recurso então você pesquisa sobre aquele recurso em determinado navegador.


acho que com isso já da trabalho pro fds :)

abraços!


7. Re: Formulário method POST, Clique em próxima página apagua valores

Allan Cristhian Kath Kipfer
akipfer

(usa Ubuntu)

Enviado em 14/06/2012 - 14:58h

blz ja tava mesmo tentando algo por ai...
mas obrigado mesmo assim...
DO navegador que eu falei que não configurei o site para outros navegadores, cada navegador tem suas diferenças...IE por ex é maior cagada inventada hehe...
Não do PHP em si saca, mas o navegador interpreta diferente o html e css...
deveria ser padrão, por LEI deveria ser, por LEI mesmo.

Obg ai nego, vou ver se do geito, se não volto aqui, apenas se funcionar vou botar resolvido...
[Edit]
ah, quanto ao menu, você achou feio, oq e porquê? pode falar de boa[/Edit]






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts