2010-11-01 16 views
0

我有這樣的::使用後.... file.php

pm.php?v=unread 

現在在讀,你也可以按消息或邀請過濾器和鏈接看起來是這樣的:

<a href="?f=msgs">Msgs</a> | <a href="?f=invites">Inv.</a> 

如果你在pm.php?v=unread,裏面並按下Msgs,它會變成pm.php?f=msgs。 我希望它是pm.php?v=unread&f=msgs

我該怎麼做?

回答

0
<a href="?<?=($_GET['v']=="unread"?'v=unread&':'')?>f=msgs">Msgs</a> 

<a href="?<?=($_GET['v']?'v='.$_GET['v'].'&':'')?>f=msgs">Msgs</a> 
+5

<?=已被棄用。使用href =「<?php echo($ _GET ['v']?'v = unread&':'');?> f = msgs」 – 2010-11-01 18:09:20

+0

這將是一個巨大的痛苦,如果你得到更多的物品在您的查詢字符串 – Galen 2010-11-01 18:25:26

0
<a href="pm.php?f=msgs&v=<?php echo $_REQUEST['v']; ?>">Msgs</a> 
0

你必須弄清楚所有的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> 

這顯然是短又髒。假設如果你想保持所有您$ _GET瓦爾,並添加一個額外的到您的鏈接,考慮array_merge()http_build_query()你將永遠有參數,可以等

5

$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>"; 
+0

這個答案將從長遠來看幫助你 – Galen 2010-11-01 18:25:49

0

這是一個有趣的問題。因爲如果您不使用任何$ _GET值,並且您單擊了消息?然後,它會去pm.php & F =現在這裏封郵件是我的解決方案:)

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> 

有一段時間沒有這樣做,所以不要如果有一點點關閉,我會將它釘十字架! :)

相關問題