2010-12-22 31 views
0

行,所以我有一個關於PHP的問題,我不知道如果我只是愚蠢的,如果這僅僅是一個困難許多比我想象:/添加到一個參數類別過濾

所以我試圖通過URL中的GET參數來過濾一些結果。我在想這樣做的最佳方式與ebuyer.com的做法類似。

當篩選搜索有不同的分類結果的The URL是建立像這樣

filtercat=36,134,142,62 etc 

他們是如何增加的參數,同時保持所選類別的休息嗎?

幫助!

基本上,我想創造什麼是this site,左側邊欄,您可以選擇和取消選擇您的搜索過濾器

任何答覆

UPDATE

非常感謝

下面是一些代碼,但重複點擊鏈接會導致多次出現相同的值

例如categories.php?filtercat = 361343636

我該如何阻止並在兩者之間添加逗號以便輸出?

例如categories.php?filtercat = 36134等

<?php 

$filter = $_GET['filtercat']; 
$pieces = explode(",", $filter); 
$edit_url = http_build_query(Array('filtercat' => ''.$pieces[0].$pieces[1].$pieces[2].'')); 

echo($edit_url); 
?> 

然後在我的鏈接我有

<a href="<?php echo('categories.php?'.$edit_url.'36'); ?>">36catagory</a> 

<a href="<?php echo('categories.php?'.$edit_url.'134'); ?>">134catagory</a> 

的爆炸沒有工作,但因爲沒有逗號......整個事情的巨型爛攤子真的和我很困惑:/幫助!

+1

某些代碼會有幫助。 – 2010-12-22 13:54:06

+0

我認爲你的意思是「逗號」(,,,),而不是「前來者」。 – Nathan 2010-12-22 18:47:46

回答

0

除了explode(),您需要implode(),並且可能需要array_unique()

$filter = $_GET['filtercat']; 
$pieces = explode(',', $filter); 

$edit_url = http_build_query(Array( 
    'filtercat' => implode(',', array_unique($pieces)) 
)); 
0

的script.php?filtercat [] = 36 & filtercat [] = 134

0

另一個笏像被序列化與值的數組來傳遞多個值。

$array = array('filtercat' => 
    array(25, 32, 49) 
); 
$passme = serialize($array); 

然後發送$ passme作爲GET。

<a href='test.php?val=<?php echo $passme; ?>'>Link</a> 

然後你就可以在以後反序列化,並得到一個包含所有你的價值觀

$serilized = $_GET['val']; 
$array = unserialize($serialized); 

這將打印出數組:

陣列 ( [filtercat] =>陣列 ( [0] => 25 [1] => 32 [2] => 49 ) )

0

爲什麼不使用http_build_query來重建查詢字符串?我假設你知道所有$_GET參數的值,那麼何時可以重新加入查詢字符串,何時可以重新構建呢?

相關問題