1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[php] apresentar resultados

Discussão em 'Web Development' iniciada por SlashString, 18 de Julho de 2008. (Respostas: 3; Visualizações: 569)

  1. SlashString

    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
     
  2. MPalhas

    MPalhas Power Member

    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.
     
  3. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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
     
  4. SlashString

    SlashString Power Member

    Muito obrigado MPalhas e Kayvlim!
    Explicação muito sucinta e simples!
    Já consegui o que queria, obrigado!


    Cumprimentos
     

Partilhar esta Página