Jump to content


Photo

Dúvidas De Iniciante


  • Faça o login para participar
14 replies to this topic

#1 Rogério Filho

Rogério Filho

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Masculino
  • Localidade:Volta Redonda - RJ

Posted 05/08/2009, 12:32

Olá pessoal, sou iniciante em php e estou passando por um momento difícil: eu criei uma pequena busca usando o componente select, onde cada valor aponta para uma página. Usando o comando IF/ELSE eu faço com que a escolha do usuário seja apontada para a página, e usando o include eu a "chamaria". Mas o que acontece, é que o include está inseerindo o texto da página que estou chamando dentro da página inicial. Abaixo vai parte do código. Por favor, preciso de AJUDA!
<select name="select">
<option> pagina 1</option>
<option> pagina 2</option>
<option> pagina 3</option>
</select>
<input type="submit" name="Submit" value="Enviar">
<?php

$opcao = $_POST["select"];
if ($opcao == 'pagina 2')
include ("pga2.php");
?>

#2 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 05/08/2009, 14:44

Tópico movido


Movido para Dúvidas gerais de PHP



Aqui não é local para dúvidas amigo.
Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#3 Tonini

Tonini

    12 Horas

  • Usuários
  • 130 posts
  • Sexo:Masculino

Posted 05/08/2009, 14:56

Para REDIRECIONAR utilize:

<?PHP

header("Location: PAGINA");

?>

CalvinBall.
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...

#4 Rogério Filho

Rogério Filho

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Masculino
  • Localidade:Volta Redonda - RJ

Posted 05/08/2009, 15:48

Amigo, não sei porque, mas não está dando certo, veja a mensagem de erro:

Warning: Cannot modify header information - headers already sent by (output started at c:\arquivos de programas\easyphp1-8\www\pesquisa2\index.php:13) in c:\arquivos de programas\easyphp1-8\www\pesquisa2\index.php on line 23

#5 Tonini

Tonini

    12 Horas

  • Usuários
  • 130 posts
  • Sexo:Masculino

Posted 05/08/2009, 15:58

Rogério,

O Header tem que vir antes... desculpe!
Assim funciona:
<?php

$opcao = $_POST["select"];
if ($opcao == 'pagina 2') 
header("Location: pagina2.php");
?>
<form action='index.php' method="post">
<select name="select">
<option> pagina 1</option>
<option> pagina 2</option>
<option> pagina 3</option>
</select>
<input type="submit" name="Submit" value="Enviar">
</form>

Para retirar o erro quando a variavel estiver vazia, você pode colocar uma @ antes do nome ou iniciar a variavel:

@$opcao = $_POST["select"];

$opcao = "";
$opcao = $_POST["select"];

CalvinBall.
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...

#6 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 05/08/2009, 16:52

Isso de ocultar o erro não é indicado! Tente tratar o erro quando possível. Se vc sabe que vem variável vazia, faça um IF.

[codebox]if($blablabla == ""){[/codebox]

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#7 Rogério Filho

Rogério Filho

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Masculino
  • Localidade:Volta Redonda - RJ

Posted 06/08/2009, 11:39

Amigão, infelizmente ainda está dando o mesmo erro. Eu só quero que, à partir de uma condição, a página seja aberta automaticamente: se $var = pág1 então abrir pag1.php; se $var = pág2 então abrir pág2...
Mas te agradeço muito pela boa vontade.

#8 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 06/08/2009, 12:00

Boa tarde amigo.
Tente colocar value nos options e testá-los.

[codebox]<option value="1"> Página 1 </optopn>[/codebox]

Qual erro está aparecendo agora?

Abraços
Mateus Antunes
MBASistemas

#9 Tonini

Tonini

    12 Horas

  • Usuários
  • 130 posts
  • Sexo:Masculino

Posted 06/08/2009, 14:13

Ué! Então não entendi o que você quer...

Montei o exemplo completo:


index.php -- Quando você seleciona uma opção e clica no botão você é redirecionado para a pagina escolhida.
[codebox]
<?php
if(isset($_POST['select'])){
$opcao = $_POST["select"];
if ($opcao == 'pagina 2') {
header("Location: 2.php");
} else if ($opcao == 'pagina 1') {
header("Location: 1.php");
} else if ($opcao == 'pagina 3') {
header("Location: 3.php");
}
}
?>
<html>
<body>
<form action='index.php' method="post">
<select name="select">
<option> pagina 1</option>
<option> pagina 2</option>
<option> pagina 3</option>
</select>
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>
[/codebox]

isso funciona REDIRECIONANDO você para a pagina escolhida...

Edição feita por: Tonini, 06/08/2009, 14:13.

CalvinBall.
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...

#10 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 06/08/2009, 16:23

ao inves de colocar
if($blablabla = "")
vc pode usar
if(empty($blablabla)){

Abraços

Edição feita por: l3on4rdo, 06/08/2009, 16:25.

Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !

#11 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 06/08/2009, 16:35

Acho que ele está usando alguma saída HTML antes do Header...
Invês do header, use Javascript mesmo.

[codebox]
if(isset($_POST['select'])){
$opcao = $_POST["select"];
if ($opcao == 'pagina 2') {
echo "<script>window.locatio='pag2.php';</script>";
} else if ($opcao == 'pagina 1') {
echo "<script>window.locatio='pag1.php';</script>";
} else if ($opcao == 'pagina 3') {
echo "<script>window.locatio='pag3.php';</script>";
}
}
[/codebox]

Até mais ^_^

Edição feita por: Dudu, 06/08/2009, 16:36.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#12 Tonini

Tonini

    12 Horas

  • Usuários
  • 130 posts
  • Sexo:Masculino

Posted 06/08/2009, 17:41

Bom, pessoalmente prefiro usar o PHP do que o javascript... Ele não pode ser desabilitado?
De qualquer forma com o exemplo que eu passei por ultimo fica claro que o html deve vir depois...

@leonardo,

Usei
if(isset($_POST['select'])){

CalvinBall.
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...

#13 Rogério Filho

Rogério Filho

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Masculino
  • Localidade:Volta Redonda - RJ

Posted 07/08/2009, 11:59

cara, eu não sei onde está o meu erro com relação ao header. Eu já vi que ele é usado para esta função, mas não consigo usar. Eu fiz um outro código e ele chama a página do jeito que quero, mas tem um problema: tenho que pressionar o botão duas vezes para ir. Veja o código:
<?php
@$opcao = $_POST["select"];
if ($opcao == 'pagina 1')
$opcao = 'http://localhost:81/PESQUISA2/pga1.php';
if ($opcao == 'pagina 2')
$opcao = 'http://localhost:81/PESQUISA2/pga2.php';
if ($opcao == 'pagina 3')
$opcao = 'http://localhost:81/PESQUISA2/pga3.php';
?>

<form action='<? echo $opcao; ?>' method='post'>
<select name='select'>
<option> pagina 1</option>
<option> pagina 2</option>
<option> pagina 3</option>
</select>

<input name="Submit" type="submit" " value="Enviar">

</form></td>
-----------------------------------------------------------------------------------
é fácil de entender o porquê de ter que pressionar o botão duas vezes, o que não entendo, é porque o header não funciona no meu código.

#14 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 07/08/2009, 13:02

entao tonini, o isset v so se a variavel esta setada ou nao, caso ela esteja em branco (nula) o isset pode nao servir !!
Por isso, caso vc queria ver se ela "veio" do form, o melhor a usar eh empty !

Abraços
Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !

#15 Tonini

Tonini

    12 Horas

  • Usuários
  • 130 posts
  • Sexo:Masculino

Posted 07/08/2009, 13:23

Teste o header com uma pagina vazia redirecionando para onde você deseja...
Isso vai permitir saber se o problema é no header ou no código...

E ah, ele dá algum erro ou simplesmente não redireciona?

---

Leonardo,

Bom, nesse caso funciona... Já que teoricamente ela não deveria vir nula...
Mas valeu pela explicação ;-)

Edição feita por: Tonini, 07/08/2009, 13:30.

CalvinBall.
Any player may declare a new rule at any point in the game.
The player may do this audibly or silently...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq