0

请原谅我的 PHP 菜鸟!我想要一个页面来显示基于传入链接的特定导航。它的设置如下:

page1.php 列表项:

<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'wood-species.php')) echo 'class="current"';?>href="wood-species.php?name=standard">Wood Species</a></li>

page2.php 列表项:

<li><a <?php if (strpos($_SERVER['PHP_SELF'], 'wood-species.php')) echo 'class="current"';?>href="wood-species.php?name=premium">Wood Species</a></li>

因此,第一个链接将使用 GET 方法将 name 变量设置为“标准”,第二个链接将其设置为“高级”。所以我想要发生的是'wood-species.php' 显示与适当的导航,但我不知道如何销毁或取消设置'name' 变量。

这是我尝试使用的,显然没有完成......

 <?php

    $woodclass = $_GET['name'];
    if($woodclass="premium") {
    require("includes/premium-wide-navigation.php"); 
    echo"premium";
    clearit();
    }

    else if($woodclass="standard") {
    require("includes/standard-wide-navigation.php");
    echo"standard";
    clearit();
    }
    else {
    //
    }

    function clearit () {
    unset($GLOBALS['woodclass']);
    }

?>
4

5 回答 5

4

我认为 unset($_GET['name']); 应该做的工作。

于 2012-05-27T22:45:23.233 回答
1

您可以简单地使用取消设置变量unset($myVar);

在这里阅读:http: //php.net/manual/en/function.unset.php

于 2012-05-27T22:49:51.857 回答
0

header("location: somewhere.php");将摆脱任何 $_GET 变量。

于 2020-07-29T20:13:20.913 回答
0

如果您正在处理条件并且您只想清除来自 url 的任何获取请求,您可以这样做

 if (!empty($_GET))
    header("Location: page.php");

这真的只适用于条件寿

于 2021-06-21T01:27:29.343 回答
0

使用 javascript

形式:

<form method="get" action="<? print $_SERVER['PHP_SELF']; ?>"> <input type="text" name="number" size="5" maxlength="5">
<input type="submit" name="submit" value="Search"> <input id="refresh_custom_input" type="reset"> </form>

Javascript:

//refresh GET variable
$('#refresh_custom_input').click(function() {

    var query = window.location.search.substring(1)

    if(query.length) {
       if(window.history != undefined && window.history.pushState != undefined) {
            window.history.pushState({}, document.title, window.location.pathname);
       }
    } 

    window.location.reload(); 
});
于 2016-12-06T16:54:40.300 回答