2010-06-18 45 views
2

我有一些數據庫信息顯示在一個頁面上。如何添加GET變量到當前頁面的結尾使用php形式的頁面?

我正在使用url中使用$_GET['page']變量的分頁類。當您點擊不同的分頁定位標記時,它會將$_GET['page']更改爲網址中的新數字並顯示相應的結果。

我有排序和搜索功能,它使用$_GET['searchby']$_GET['search_input']變量。用戶在使用GET的表單上輸入他們的搜索條件。然後將變量放入url中,以顯示正確的結果。

我遇到的問題是,無論何時點擊分頁鏈接,它都會將$_GET['page']變量添加到網址末尾,並刪除$_GET['searchby']$_GET['search_input']。當我提交搜索表單時,它會添加$_GET['searchby']$_GET['search_input'],但會刪除$_GET['page']

如何在不刪除任何現有GET變量的情況下使用錨標記和搜索/排序表單將GET變量添加到當前頁面url的末尾,但是如果它們是相同的GET變量名,則覆蓋它們?

回答

6

試試這個:

if (strpos($_SERVER['REQUEST_URI'], '?') !== false) 
{ 
    $url = $_SERVER['REQUEST_URI'] . '&var=value'; 
} 
else 
{ 
    $url = $_SERVER['REQUEST_URI'] . '?var=value'; 
} 

<a href="<php echo $url;>">Go</a> 

注意$_SERVER['REQUEST_URI']給你當前的URL包括查詢字符串值。

+0

我不確定,但我相當肯定,如果請求URI還沒有一些get變量,將會失敗。例如,如果你在'example.php?foo = bar',那麼你的腳本將正常工作,輸出'example.php?foo = bar&var = value'。但是如果你在'example.php',那麼你的腳本會輸出'example.php&var = value',這是無效的。 – 2010-06-18 10:34:23

+0

我會試試看。我怎樣才能解決這個問題的GET變量添加到URL使用表單? – zeckdude 2010-06-18 10:34:27

+0

@zeckdude:'GET'變量來自哪裏並不重要 – jigfox 2010-06-18 10:36:43

1
$query_string = http_build_query(array_merge($_GET, array('page' => $page))); 
+0

表單正在添加的get變量呢? – zeckdude 2010-06-18 10:57:21

+0

@zeckdude是不是已經在$ _GET數組中了? – 2010-06-18 11:00:01

+0

不,只有當用戶在表單上搜索時纔會使用表單的get操作添加它們。 – zeckdude 2010-06-18 11:29:17

相關問題