[php] apresentar resultados

SlashString

Power Member
Viva,

estou com um problema ao qual não me consigui ainda desenrascar..

Tenho duas página: pesquisa.php e resultados.php.
Em pesquisa.php, tenho um formulário com um campo de procura, textfield, cujo texto é enviado para resultados.php.
Em resultados.php, recebo o texto do textfield e faço uma query a base de dados e apresento os resultados.

Tudo funciona perfeitamente, mas eu queria fazer o seguinte agora.

Ter 3 páginas: principal.php, pesquisa.php e resultados.php.
No body da pagina principal.php vou fazer include de pesquisa.php, que ficará do lado esquerdo da pagina.. depois tudo é processado, e quero que os resultados apareçam também na principal.php, do lado direito da página!

Como é que posso fazer isto? ..o que tenho de momento, é a página principal a fazer include de tudo direitinho como pretendo, mas quando o formulario é enviado, os dados são apresentados na pagina pesquisa.php.. e queria que fossem apresentados em principal.php..


Cumprimentos
 
basicamente o que queres é o que fazem muitos sites, em que a página chamada é sempre o index.php ou outra, e esta é que faz include ao que é necessário.

tens que fazer também include da pesquisa na página principal, mas com as devidas condições, para que ela apareça só quando é chamada. também tens que alterar o action do formulário para apontar para a página principal. eu sugeria o seguinte. fazes o formulário assim:

<form method="POST" action="principal.php?opcao=resultados_pesquisa">
...

qualquer coisa deste género. depois no index, na parte onde é para mostrar o conteudo que neste caso vão ser os resultados:

PHP:
switch ($_GET['opcao'] {
case 'resultados_pesquisa':
   include 'resultados.php';
   break;
default: //nao há opção, mostra por exemplo a página inicial
   echo "pagina inicial";
   break;
}

ou seja, se for chamado o index com a opcao resultados_pesquisa, faz include aos resultados, senao mostra outras coisas.
neste caso podia ser um simples IF, mas mostrei-te esta forma, porque assim já fica preparado caso queiras fazer a mesma coisa com outras partes do site. basta o caminho indique a opcao que queres que apareça, e acrescentas essa opcao no switch.
 
Podes fazer com que o pesquisa.php faça o POST para o principal.php, que, por sua vez, ao saber que está a haver um POST de um formulário de pesquisa, faz um include do resultados.php, que irá imprimir a resposta, em lugar do que costuma estar do lado direito da página.

edit - no fundo, é o que o MPalhas escreveu :P
 
Back
Topo