【问题标题】:Appending $_GET variable to URL already containing $_GET variables将 $_GET 变量附加到已经包含 $_GET 变量的 URL
【发布时间】:2013-11-27 16:21:55
【问题描述】:

我的页面上有一个子导航菜单,只要将?n=review 附加到 URL 就会打开。

每当附加 ?language=xx 时,我也会更改语言并设置会话变量。

但是,如果我在子导航打开的页面上,并且我希望从那里更改语言,则在单击链接时?n=review 将替换为?language=xx,然后子导航关闭。 如何在每次更改语言时检查是否已经设置了 $_GET 变量,如果是,请将我的附加变量附加到末尾?

更改语言后,新语言将设置为会话变量,因此我无需担心保留它的 $_GET 变量。我想知道是否需要以相同的方式存储 sub-nav 变量...?

很抱歉,如果这个问题措辞不当,我正在尝试自己理解逻辑。

如果您需要查看任何代码或更简洁的措辞,请在投票前告诉我。

【问题讨论】:

标签: php session get


【解决方案1】:
if(empty($_GET['language'])) {
  $fragment = '?n=review';
} else {
  // if language is set, get the value
  $lang = $_GET['language'];
  $fragment = "?language=$lang&n=review";
}

// I just made up the /index.php part, replace that with the proper link.
$url = "/index.php$fragment";

【讨论】:

  • 太棒了,谢谢。正是我需要让代码正常工作的指导。
【解决方案2】:

Get 变量可以通过使用 '&' 字符链接起来。所以你可以这样建立你的链接:

echo "./?n=review&language=xx"

如果您想知道是否设置了任何 $_GET 参数,您可以像这样简单地使用 PHP 的 empty() 函数:

if( empty( $_GET ) )
{
   //$_GET is empty
}
else
{
    //$_GET has something in it
}

【讨论】:

    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多