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

Problema simples com Switch!


ReDNoS

Pergunta

E aew pessoal da ScriptBrasil?

Eu tou com um pekenino problema com Switch. Eu preciso um Switch dentro de outro Switch, mas parece que não funciona.

Meu código de exemplo é esse:

switch (@$_GET['url']) {
    default:
    echo "Modo Default";
        break;

        case 'world':
        echo "Modo World";
          switch (@$_GET['url']) {
          case 'super'
          echo "(Super)";
          break;

          case 'ultra'
          echo "(Ultra)";
          break;
          }
         break;
}

O nome da minha página é teste.php, então se eu escrever teste.php ele me mostrará "Modo Default", se eu escrever teste-world.php ele me mostrará "Modo World".

E se eu entrasse em teste-world-super.php ou teste-wolrd-ultra.php ele deveria me mostrar ou "Modo World Super" ou "Modo World Ultra".

Mas parece que não é aceito usar dois switchs e quando eu digito teste-world-super.php ou teste-wolrd-ultra.php ele me mostra apenas "Modo World".

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

13 respostass a esta questão

Posts Recomendados

  • 0

Eu nunca tentei fazer dois switchs um dentro do outro, mas se não funciona, você pode tentar com if, else if e else ...

if (@$_GET['url']=="valor default") 
{
    echo "Modo Default";
}
else if(@$_GET['url']=="world")
{
        echo "Modo World";
        if(@$_GET['url']=="super")
        {
             echo "(Super)";
        }
        else if(@$_GET['url']=="ultra")
        {
             echo "(Ultra)";
         }
}

Link para o comentário
Compartilhar em outros sites

  • 0

Dá na mesma...ele continua mostrando apenas "Modo World" quando eu tento entrar em teste-world-super.php

E eu até tentei mudar meu código utilizando IF, ELSEIF com o Switch, mas não deu certo!!!

<?PHP
if (@$_GET['url']=="a")
{
    echo "Modo Default";
}
else if(@$_GET['url']=="world")
{
        echo "Modo World";
        switch (@$_GET['url']) {
          case 'super':
          echo "(Super)";
          break;

          case 'ultra':
          echo "(Ultra)";
          break;
          }
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu imaginei que a @$_GET['url'] pudesse assumir mais de um valor, mas já que só é possível assumir um único valor então faça assim ...

if (@$_GET['url']=="valor default")
{
    echo "Modo Default";
}
else if(@$_GET['url']=="world")
{
        echo "Modo World";
}
else if(@$_GET['url']=="super")
{
      echo "(Super)";
}
else
{
      echo "(Ultra)";
}

Link para o comentário
Compartilhar em outros sites

  • 0
E você colocando do jeito que eu mostrei acima, quando você digita teste-world-super.php aparece o quê ?

Do jeito que ficou seu último código, se eu digitar teste-world-super.php aparece "(Ultra)" ^^.

Acho que você não entendeu bem o que eu quero.

Se eu digito teste-world.php ele deverá mostrar "Modo World", se eu digitar teste-world.php ele deverá mostrar "Modo World (Super)", e se eu digitar teste-world-ultra.php ele deverá mostrar "Modo World (Ultra)".

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, eu entendi o que você quer. Mas deixa eu entender o seu sistema. O usuário digita o nome de uma página (teste-world-super.php) em um campo texto e então o sistema pega o que ele digitou e dependendo da página digitada ele escreve o modo em que o usuário está. É isso ?

Link para o comentário
Compartilhar em outros sites

  • 0

Então faça assim ...

if (@$_GET['url']=="teste.php")
{
    echo "Modo Default";
}
else if(@$_GET['url']=="teste-world.php")
{
        echo "Modo World";
}
else if(@$_GET['url']=="teste-world-super.php")
{
      echo "(Super)";
}
else if(@$_GET['url']=="teste-world-ultra.php")
{
      echo "(Ultra)";
}

Link para o comentário
Compartilhar em outros sites

  • 0

Não deu certo, ele não reconhece o nome da própia página "teste".

Ok, então vamos tentar algo diferente!

Vou criar uma variável:

$link_page1 = '<a href="teste-world-page=1.html">Page1</a>';
    $link_page2 = ' <a href="teste-world-page=2.html">Page2</a>';
    echo $link_page1, $link_page2;

Agora preciso de algo que cheque se o link foi clicado.

Exemplo:

if $link_page1 foi clicado agora{

echo "link clicado com sucesso";

}

Dá pra fazer isso?

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

  • 0

O dia que alguém vier aqui e falar que não é com urgência acho que o mundo acaba... quando existe urgência o melhor é simplesmente mandar pra um profissional fazer.

Quanto a sua dúvida, como saber se um link foi clicado? Passa alguma coisa junto (<a href=pagina.php?algumacoisa=xxxx>), pronto se algumacoisa estiver setada (isset...) e não estiver em branco (!empty...) é porque foi clicado, é a única maneira...

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...