2014-04-04 30 views
-3

我正在嘗試爲我正在開發的在線商店開發產品過濾器。我的意思的一個例子是http://www.riverisland.com/men/just-arrived。我設法在點擊大小時設置了一個JavaScript來填充URL,但未選中時卻無法從URL中刪除值。PHP使用GET獲取URL的值[]

我的主要問題在這裏。假設我有我的網址爲:

http://127.0.0.1/shop/dresses/?s=1&s=2&s=3

如何讓我的PHP來從URL中提取值? 如何格式化SQL查詢以使用任何示例查詢來搜索從URL獲取的值?

+0

如果您獲取您在問題中顯示的URL的值,則只會獲得3.您需要將's'更改爲數組'[]'並通過AJAX傳遞值。 –

+0

感謝您的建議。由於我對Ajax不擅長,我該如何實現這一目標?我的表格將其作爲名稱=「s []」 – iLearnDaily

+0

完整的解決方案?對不起,但你需要在這個網站提出具體問題。來吧,唯一剩下的就是要求一個圖形設計; -P –

回答

0

URL編碼值的簡單的解決方案是這樣的。

根據@ Andrey.Popov建議的格式化您的網址,如http://127.0.0.1/shop/dresses/?s=1,2,3。然後執行下面的操作。

if(isset($_GET['s']) && !empty($_GET['s'])) 
{ 
    $e = sanitizeFunction($_GET['s']); 
    $d=explode(',',$e); 
} 

$d現在有你所有的$ _GET [ 'S']值。

這是我找到的更簡單的方法,它的工作原理!

+0

您的解決方案速度更快,理解起來也更簡單,所以我將其作爲答案,但@Alvaro很重要,儘管它需要我知道自己在做什麼,或者迷失在理解中。這個解決方案只是一個ABC解決方案,對我來說工作得更快。 如何獲得各種尺寸或品牌的盒子?請求最後一條線索,然後我理清SQL – iLearnDaily

+0

更好的方法是在for()循環中從數據庫填充值,然後執行下面的操作,它對您來說可以正常工作。如果(in_array($ checkid [$ i],$ paramfromurl)){?>選中' – OmniPotens

+1

'非常感謝。這工作!我的SQL也正常工作。感謝所有幫助我實現這個目標的人。我現在轉到其他的東西。 – iLearnDaily

0

爲了受益於$_GET和其他超全球植物,您必須遵循Variables From External Sources中解釋的規則。既然你已經選擇了幾個具有相同名稱的參數,並且它們不包含正確配對的方括號,那麼你基本上都是自己的。你必須複製的手動步驟包括:

  1. $_SERVER['QUERY_STRING']提取原始查詢字符串,例如:

    $query_string = filter_input(INPUT_SERVER, 'QUERY_STRING'); 
    
  2. 解析出的字符串。據我所知,沒有內置函數可以做到這一點,所以我要麼谷歌一個良好的第三方庫,或寫一個簡單的分析與正則表達式或舊的explode()

  3. 解碼與urldecode()

+0

我現在正在工作。按照我所能完成的工作,將解決SQL問題。感謝領先。 – iLearnDaily