PHP的基本导航无法正常工作

时间:2014-04-13 15:00:37

标签: php html css post classname

我有以下PHP页面:

的index.php

   if( isset($_POST['location']) ) {
            $location = $_POST['location'];

   } else {
        $location = 'home';
    }

require 'header.php';

switch ($location) {
    case "home": require 'home.php'; break;
    case "about": require 'about.php'; break;
    case "products": require 'products.php'; break;
    case "budget": require 'budget.php'; break;
    case "contact": require 'contact.php'; break;
    case "help": require 'help.php'; break;
    default: require 'home.php';
}

require 'footer.php';

?>

在HEADER里面我有:

的header.php

<body class="<?php echo $location; ?>">

<div id="navmenu">
    <ul id="menu">
        <li><a id="page_item_1" href="?location=home">Home</a></li>
        <li><a id="page_item_2" href="?location=about">About</a></li>
        <li><a id="page_item_3" href="?location=products">Products</a></li>
        <li><a id="page_item_4" href="?location=budget">Budget</a></li>
        <li><a id="page_item_5" href="?location=contacto">Contact</a></li>
        <li><a id="page_item_6" href="?location=help">Help</a></li>
    </ul>
</div>

但没有任何作用...... POST的位置发生变化但是身体的类没有变化。并且身体的内容都要求(不加载home / about / etc.php)。

我做错了什么? 感谢。

3 个答案:

答案 0 :(得分:1)

您通过GET传递内容,而不是POST

if( isset($_GET['location']) ) {
    $location = $_GET['location'];
} else {
    $location = 'home';
}

为了将来参考,您可以打印GETPOST变量,以查看哪些变量包含以下内容:

print_r($_GET);

在这个主题上,$_REQUEST包含它们:

print_r($_REQUEST);

要发送POST数据,您必须使用表单发送它们 - 这里不相关。您在网址查询字符串中看到的是GET数据,而不是POST

答案 1 :(得分:0)

更改帖子以获取.. 即。

if( isset($_GET['location']) ) {
    $location = $_GET['location'];
} else {
   $location = 'home'; 
}

答案 2 :(得分:-1)

你使用GET而不是POST +为什么不使用$ location +“php”? :

if( isset($_GET['location']) ) {
            $location = $_GET['location'];

} else {
        $location = 'home';
    }
require 'header.php';
require $location . '.php';
require 'footer.php';