PHP开关不工作

时间:2014-10-03 11:41:21

标签: php html switch-statement

<body>
    <?php

        if (isset($_GET['page'])) {
            switch($_GET['page']) {
                case "domov": include ("index.php"); break;
                case "ponuka": include ("pages/ponuka.html"); break;
                case "akcie": include ("pages/akcie.html"); break;
                case "kontakt": include ("pages/kontakt.html"); break;
                default: include ("index.php"); break;
            }
        }
        else  {
            include("index.php");
        }
    ?>

    <div id="header">
        <div>
            <ul class="first">
                <li><a href="index.php?page=domov">Domov</a></li>
                <li><a href="index.php?page=ponuka">Ponuka pizze</a></li>
            </ul>

            <div>
                <a href="index.php"><img src="images/logo.png" alt="Logo"></a>
            </div>

            <ul>
                <li><a href="index.php?page=akcie">Akcie</a></li>
                <li><a href="index.php?page=kontakt">Kontakt</a></li>
            </ul>
        </div>
        <span></span>
    </div>
</body>

我有一个问题,使用php开关交换我的页面,例如当我点击&#34; kontakt&#34; (联系人)按钮,在浏览器中显示... / index.php?page = kontakt但kontakt.html的内容不会出现。也许它很容易为你解决,但我是编程新手,我无法解决这个问题。感谢帮助。

..对不起我的蹩脚英语语言技能

编辑1:也许重要的是要提一下,如果我点击&#34; ponuka pizze&#34; /&#34; kontakt&#34; /&#34; akcie&#34;它仍然显示index.php的内容

edit2:我改变了我的代码,现在它看起来你可以看到它但它仍然不起作用,问题与edit1相同

3 个答案:

答案 0 :(得分:3)

这些值区分大小写。因此Kontakt不等于kontakt

switch($_GET['page']) {
  case "domov": include ("index.php"); break;
  case "ponuka": include ("pages/ponuka.html"); break;
  case "akcie": include ("pages/akcie.html"); break;
  case "kontakt": include ("pages/kontakt.html"); break;
  default: include ("index.php"); break;
    }
   }

答案 1 :(得分:2)

需要从网址中删除=中的=page,然后您将获得$_GET['page']并确保在切换中具有正确匹配的字符串

if (isset($_GET['page'])) {
    switch($_GET['page']) {

答案 2 :(得分:2)

首先,您的网址有点偏离:

index.php?=page=kontakt
          ^

这应该是:

index.php?page=kontakt
  

我有一个问题,使用php开关交换我的页面,例如当我点击&#34; kontakt&#34; (联系人)按钮,在浏览器中显示 .../index.php?=page=kontakt

我不知道您使用的是哪个网址,但只是确保您使用大写字母或小写字母的第一个字符对应的情况具有相同的值:

<li><a href="index.php?page=kontakt">Kontakt</a></li>
case "kontakt": include ("pages/kontakt.html"); break;

// or

<li><a href="index.php?page=Kontakt">Kontakt</a></li>
case "Kontakt": include ("pages/kontakt.html"); break;