Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com switch case isset


Edilson Santiago

Pergunta

Amigos, minha página "painel" tem um menu numa div à esquerda, com vários botões. Quero incluir as repectivas páginas na div da direita, ao clicar no botão. Tipo, clico no botão "usuários" e dá um include da página usuarios.php na div da direita. Pensei algo assim:

    <div id="menu">
        <h3><center>MENU</center></h3>
        <form  name="form1" id="form1" method="GET"> 
        <a href="?usuarios" class="botao01">Usuários</a>
        <a href="?pessoas" class="botao01">Pessoas</a>
        <a href="?estatisticas" class="botao01">Estatísticas</a>
        <a href="?aniversarios" class="botao01">Aniversários</a>
        <a href="sair.php" class="botao01">Sair</a>
        </form>
        <br>
    </div>
    <div id="corpo">
        <?php
         $home = "home.php";
         $usuarios = "usuarios.php";
         $pessoas = "pessoas.php";
         $estatisticas = "estatisticas.php";
         $aniversarios = "aniversarios.php";
         
        switch("") {
        default: include("$home");break;
        case isset ($_GET['usuarios']): include("$usuarios");
        break;
        case isset ($_GET['pessoas']): include("$pessoas);
        break;
        case isset ($_GET['estatisticas']): include("$estatisticas");
        break;
        case isset ($_GET['aniversarios']): include("$aniversarios");
        break;
        }
        
?>

 

Só que não funciona. Clico e não acontece nada.

Podem dar uma força? Abçs

Editado por Edilson Santiago
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá!
Segue sugestão:
 

<?php
// defina a view padrão
$view = 'home';

// se existir alguma querystring
if (!empty($_SERVER['QUERY_STRING'])) {
  // então a queryString será a view
  $view = strtolower($_SERVER['QUERY_STRING']);
}

// define o path para as views a serem incluídas
$viewFile = 'views/' . $view . '.php';
?>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Pseudo Router</title>
</head>

<body>

  <div id="menu">
    <h3>
      <center>MENU</center>
    </h3>
    <nav>
      <a href="?usuarios" class="botao01">Usuários</a>
      <a href="?pessoas" class="botao01">Pessoas</a>
      <a href="?estatisticas" class="botao01">Estatísticas</a>
      <a href="?aniversarios" class="botao01">Aniversários</a>
      <a href="sair.php" class="botao01">Sair</a>
    </nav>
    <br>
  </div>
  <div id="corpo">
    <?php
    // verifica se o arquivo da view existe
    if (is_file($viewFile)) {
      //se existir, carrega a view
      include $viewFile;
    } else {
      // se não existir, carrega uma mensagem de não encontrada
      include 'views/not-found.php';
    }
    ?>

</body>

</html>

 

image.png.0984cb7d857e22741d16b9b9a7ebb3eb.png

Segue projeto zipado aqui: https://we.tl/t-ojklaS4Zb4

Editado por lowys
Link para o comentário
Compartilhar em outros sites

  • 0

Encontrei erro na linha que menciona a inclusão de $pessoas, você esqueceu de fechar as aspas.

Encontrei erro no formulário, para trabalhar com o GET, o formulário tem que usar o método PUT, que você pode omitir por ser o padrão.

Outro erro é que o formulário é desnecessário, o elemento <a> já faz a solicitação.

O switch é confuso e desnecessário.

Você não incluiu o estilo do botão01, assim eu improvisei um estilo tipo tabela para fazer funcionar a sua ideia.

<style>
.table{display:table;width:auto;border:1px solid #66666}
.table-row{display:table-row;width:auto;clear:both}
.table-col{float:left;display:table-column;width:200px;border:1px solid #ccc}
</style>
<div class="table">
  <div class="table-row">
    <div class="table-col">
		<table>
		<tr><td><a href="?usuarios">Usuários</a>
        <tr><td><a href="?pessoas">Pessoas</a>
        <tr><td><a href="?estatisticas">Estatísticas</a>
        <tr><td><a href="?aniversarios">Aniversários</a>
        <tr><td><a href="sair.php">Sair</a>
		</table>
	</div>
    <div class="table-col">
	<?php
	if (isset($_GET['usuarios'])){include("usuarios.php");}
	if (isset($_GET['pessoas'])){include("pessoas.php");}
	if (isset($_GET['estatisticas'])){include("estatisticas.php");}
	if (isset($_GET['aniversarios'])){include("aniversarios.php");}
	?>
	</div>
  </div>
</div>

Apesar dos erros, eu gostei bastante da sua ideia. Faz tempo que eu queria fazer isso, mas não sabia como.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...