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

Dúvida simples de PHP

Discussão em 'Web Development' iniciada por ScalaZone, 18 de Agosto de 2008. (Respostas: 41; Visualizações: 1721)

  1. ScalaZone

    ScalaZone Power Member

    Boas pessoal,
    a minha dúvida é simples, eu já dei voltas e mais voltas, e devo andar a complicar o que é simples.

    Eu na minha página web, tenho o index com uma form. Nela, tenho uma caixa de texto e 3 botões (txt_pesquisar, bt_pesquisar, bt_loja, bt_categoria). O meu index está com extensão .html

    O que pretendo é, ao clicar num dos botões ele me redirecione para uma página que me mostra o resultado da pesquisa que estou a fazer.

    Ex. Pesquisar por categoria, eu na caixa de texto escrevo "Sapatos" e carrego no botão 'bt_categoria'. Quando o fizer ele redireciona para a página 'resultado_pesquisa_categorias.php' (que é a página que recebe o valor do "$_POST" e mostra a pesquisa dessa categoria.

    Simples né ?
    Eu já usei a instrução "If" , mas até agora sem sucesso :'(
    Alguém me pode dar uma mãozinha? ;)
     
  2. há-de ser qualquer coisa assim:

    index.html
    Código:
    <body>
    <form id="form1" name="form1" method="post" action="resultado_pesquisa.php">
      <input type="text" name="txt_pesquisar" id="txt_pesquisar" />
      <input type="submit" name="button" id="button" value="Pesquisar" />
      <input type="submit" name="button" id="button" value="Loja" />
      <input type="submit" name="button" id="button" value="Categoria" />
    </form>
    </body>
    
    resultado_pesquisa.php
    Código:
    <?php
    if($_POST['button']=="Pesquisar"){
       //pesquisa normal
    }elseif($_POST['button']=="Loja"){
       //pesquisa na loja
    }elseif($_POST['button']=="Categoria"){
       //pesquisa na categoria
    }
    ?>
    
     
    Última edição: 18 de Agosto de 2008
  3. Bl4ckNo0bik

    Bl4ckNo0bik What is folding?

    Boas,
    Estás a fazer o "if" onde?
    Será possivel colocares aqui o codigo? assim será mais facil te ajudar..

    Cumps [[]]
     
  4. ScalaZone

    ScalaZone Power Member

    Este era o código que eu tinha no meu Index.html
    Pensei que ao criar um variável $op e atribuir o valor que vem da form dos botões, pudesse solucionar, mas não consigo saber qual o botão em que cliquei.

    [email protected]
    Por esta lógica, esta instrução,
    $_POST['button'] Diz-me que pressionei um botão, e conforme o "value" desse botão faço as comparações, certo?

    Obrigado
     
    Última edição: 18 de Agosto de 2008
  5. ScalaZone

    ScalaZone Power Member

    exacto.
    obrigado pela explicação.

    abraço
     
  6. ScalaZone

    ScalaZone Power Member



    Mas olha uma coisa,
    depois de ele entrar já acrescentei os rederecionamentos mas não me funcionam.
    Pus assim:

    Só que nada :mad:
     
  7. tenta com javascript

    Código:
    [FONT=Arial][SIZE=2]<?php
    if($_POST['button']=="  Ir  "){
    [/SIZE][/FONT][FONT=Arial][SIZE=2]
      echo '<script type="text/javascript">window.location = "resultado_pesquisa.php"</script>';
    [/SIZE][/FONT][FONT=Arial][SIZE=2]
    }elseif($_POST['button']=="Loja"){
    
    [/SIZE][/FONT][FONT=Arial][SIZE=2]  echo '<script type="text/javascript">window.location = "resultado_pesquisa_lojas.php"</script>[/SIZE][/FONT][FONT=Arial][SIZE=2]';
    
    }elseif($_POST['button']=="Categoria"){
    [/SIZE][/FONT][FONT=Arial][SIZE=2]
      echo '<script type="text/javascript">window.location = "resultado_pesquisa_categorias.php"</script>[/SIZE][/FONT][FONT=Arial][SIZE=2]';
    
    }
    ?>                          
    [/SIZE][/FONT]
     
  8. ScalaZone

    ScalaZone Power Member


    Eu de java não entendo muito,
    mas pelo que estou a ver, já tentei fazer um teste, que foi imprimir o valor que o POST trás, ou seja, caso clicasse em "Lojas" ele mostrava a palavra "Lojas" um vez que vem no 'value'.

    Mas não está a aparecer nada, o que me leva a pensar que ele não sabe como comparar, uma vez que não tem valor!

    :005:
     
  9. ScalaZone

    ScalaZone Power Member

    Este é o código todo do index.html
    Este é só a parte da form
    Esta parte é onde testa:
    Com a variável $teste eu no echo imprimo o valor que ela tem. Mas não aparece nada, por isso a função '$_POST['button']' não estará a funcionar bem (digo eu) :confused:
     
    Última edição: 18 de Agosto de 2008
  10. Bl4ckNo0bik

    Bl4ckNo0bik What is folding?

    Pois ja vi o teu problem... se e esse o codigo real que possuis entao o problema e no POST mesmo... visto que tas a ir buscar um valor que esteja num objecto com o nome de 'button' e no teu form nao tens la nada que possua como nome 'button'...

    Se e k me entendes...
     
  11. Bl4ckNo0bik

    Bl4ckNo0bik What is folding?

    Isto deveria estar assim:
    Citação:
    Para isto funcionar...
    Citação:
    Penso que nao estou errado ;)

    O $_POST vai sempre buscar ao nome do objecto... se tiveres um input com nome de 'buttao_ola' e no PHP fores buscar por '$_POST['buttao']' ele nao te ira retornar nada ;)

    Cumps
     
  12. hostmake

    hostmake Power Member

    Correcto Bl4ckNo0bik
     
  13. ScalaZone

    ScalaZone Power Member

    Sim exacto.
    E de facto resolveu o problema =)

    Agora estou com outra dúvida :eek:
    Desculpem lá 'maçar-vos' a cabeça também.

    Aqui tenho o código onde vai pesquisar, neste caso, por categorias:

    Só que isto não me está a listar o que quero, dá sempre a mensagem de aviso, a dizer que não encontrou nenhum registo.
    Aqui pretendo listar a procura pela categoria, por exemplo, 'Video Jogos', ele listava todas as lojas que vendessem video jogos + essa mesma categoria.

    Eu tenho duas tabelas na minha bd. A "loja" e "categorias" daí eu ter tentado pôr "//$com_sql_distritos="SELECT * FROM loja"; "

    Como posso fazer para listar o conteúdo da pesquisa, englobando duas tabelas diferentes, mantendo a estrutura que tenho, porque lista em tabela.

    :sad:
     
  14. Bl4ckNo0bik

    Bl4ckNo0bik What is folding?

    No comando SQL que prentendes englobar as duas tabelas recomendo que uses 'INNER JOIN'... Posso é dar.t um exemplo:

    Ex.:
    "SELECT t.id, t.name, e.month, e.year FROM team t INNER JOIN evaluations e ON t.id = e.team_id WHERE t.id = 12"

    O que isto vai fazer é retornar o ID, Nome da equipa, juntamente com o mes e o ano da avaliacao ond o id da equipa e igual ao id da equipa que esta na outra tabela, estando ambos sobre a condicao de que o id da equipa seja 12.

    Percebeste o k quis dizer?

    Cumps [[]]
     
  15. ScalaZone

    ScalaZone Power Member


    Sim, é uma boa instrução SQL. Mas tipo, eu pesquiso uma categoria. Caso ele a encontre, guarda o ID e o Nome. Depois vai a outra tabela, procura qual o ID igual ao seu, e lista, juntamente todos os dados sobre essa loja.
    É isso que ainda não consegui fazer.
    Não sei se preciso de dois ciclos "while", ou se posso fazer tudo no mesmo, uma vez que tenho que fazer o "fetch" para guardar os dados e imprimir mais a baixo em tabela.

    Como faço isso :confused::sad:
     
  16. ScalaZone

    ScalaZone Power Member


    Tens razão, desculpa.
    Só reparei depois de ele ter chamado a atenção sobre essa parte.
    A tua instrução em SQL, acho que limita um pouco o que eu procuro.
    Como é que acabo por listar, todos os dados que quero ? =/
     
  17. Bl4ckNo0bik

    Bl4ckNo0bik What is folding?

    pela que estou a entender a instrução que prentendes é algo do género:

    "SELECT c.id, c.nome as Categoria, l.* FROM categorias c INNER JOIN loja l ON c.id = l.catId WHERE c.nome LIKE '%".$categoria."%';"

    Acho que desta maneira ele iria funcionar ;)

    Testa lá e diz algo ;)

    Cumps [[]]
     

Partilhar esta Página