2013-01-03 8 views
5

jestem rzeczą sposób przejść około 15 parametrów do paginacji URL:parametry podaje do stronicowania url

na przykład mam:

$input = $_GET['input']; 
$categories = $_GET['category']; 
$state = $_GET['state']; 
$zipcode = $_GET['zipcode']; 

mogłem zrobić to w ten sposób i działa prawidłowo:

Ale mam o wiele więcej parametrów do przekazania. Czy ktoś może mi pokazać, jak to się robi, używając tablicy lub czegoś lepszego?

Dziękuję

+1

Co masz wydaje się być najprostszym i najbardziej standardowy sposób przy rozpatrywaniu wniosku GET. Po co to zaciemniać? – David

Odpowiedz

5

Yo mogą korzystać z tej funkcji: Przykład
http_build_query

php.net:

<?php 
$data = array('foo'=>'bar', 
       'baz'=>'boom', 
       'cow'=>'milk', 
       'php'=>'hypertext processor'); 

echo http_build_query($data) . "\n"; 
echo http_build_query($data, '', '&amp;'); 

?> 

wyjściowa:

foo=bar&baz=boom&cow=milk&php=hypertext+processor 
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor 
2

Funkcja, która zamienia tablicę w zapytaniu URL jest dostępny w PHP, to się nazywa:

Użycie jest bardzo proste:

$data = array('foo'=>'bar', 
       'baz'=>'boom', 
       'cow'=>'milk', 
       'php'=>'hypertext processor'); 

echo http_build_query($data) . "\n"; 
echo http_build_query($data, '', '&amp;'); 

Powyższy przykład wyświetli:

foo=bar&baz=boom&cow=milk&php=hypertext+processor 
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor 

Aby uzyskać więcej informacji, polecam the manual page just linked.

Jeśli szukasz czegoś zorientowanego obiektowo, przydatne jest narzędzie Net_URL2 Pear Package.

Pozwala również na zmianę niektórych parametrów warunkowo, co jest zwykle bardzo przydatne do stronicowania, patrz: my answer to "keeping url parameters during pagination" dla dwóch przykładów, jednego standardowego rozszerzenia Array/PHP i innego dla Net_URL2.

0

Zakładając wszystkie $_GET klawiszy są takie same jak nazwy parametrów w adres URL, możesz to zrobić:

$url = $targetpage . '?page=' . $prev . '&'; 

foreach ($_GET as $k => $v) { 
    $url .= $k . '=' . $v . '&'; 
} 
$paginate.= "<a href='$url'>Previous</a>"; 

.. Albo można po prostu użyć PHP inbuilt function http_build_query()