![](/img/trans.png)
[英]Pass JSON from JQuery.load('file.php') after on file.php refresh?
[英]PHP: Using ?… after file.php
我有这个:
pm.php?v=unread
现在处于未读状态,您也可以通过按“消息”或“邀请”来进行过滤,链接如下所示:
<a href="?f=msgs">Msgs</a> | <a href="?f=invites">Inv.</a>
如果您在pm.php?v=unread,
内部pm.php?v=unread,
然后按Msgs,则结果将显示为pm.php?f=msgs
。 我希望它是pm.php?v=unread&f=msgs
我怎样才能做到这一点?
如果要维护所有 $ _GET变量并向链接添加其他变量,请考虑array_merge()
和http_build_query()
。
$gets=array_merge($_GET,array('f'=>'msgs'));//returns array with your new values overriding any old values
$getstring=http_build_query($gets);
$link="<a href="?$getstring>Msgs</a>";
<a href="?<?=($_GET['v']=="unread"?'v=unread&':'')?>f=msgs">Msgs</a>
要么
<a href="?<?=($_GET['v']?'v='.$_GET['v'].'&':'')?>f=msgs">Msgs</a>
<a href="pm.php?f=msgs&v=<?php echo $_REQUEST['v']; ?>">Msgs</a>
您必须找出所有的get变量并将它们添加到URL中。 例如,您可以在pm.php中执行以下操作:
$params = ((isset($_GET['v'])?'v=' . $_GET['v']:'');
$params .= //do the same for all your expected variables
在页面中,您将执行以下操作:
<a href="?f=msgs&<?php echo $params; ?">Msgs</a> | <a href="?f=invites&<?echo $params; ?>">Inv.</a>
这显然很短而且很脏。 假设您将始终具有params等。
这是一个有趣的问题。 因为如果您没有使用任何$ _GET值并单击消息怎么办? 然后它会去pm.php&f = msgs现在这是我的解决方案:)
function appendURL($name, $value)
{
// if we have a variable holding the '?' position
if(strpos($_SERVER['REQUEST_URI'], '?'))
{
// append the value in the & position
return $_SERVER['REQUEST_URI'] . "&$name=$value";
}
// otherwise, append it in the ? position
return $_SERVER['REQUEST_URI'] . "?$name=$value";
}
现在你的情况
<a href="<?=appendURL('f', 'msgs')?>">Messages</a>
好一阵子没做过,所以如果有什么小问题,请不要把我钉在十字架上! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.