2017-10-18 111 views
0

我目前正在開發一個表格佈局。 這些表格在PHP中使用paginator和過濾器函數。爲查詢禁用GET參數的HTML URL編碼

所有值都作爲GET參數傳輸。

例如,分頁程序將使用& limit = 20 & page = 5。 該過濾器建立在thead中的表格行上作爲輸入字段。 我的意思是每列都有自己的輸入字段。

點擊提交按鈕後,它會通過GET傳遞數據給自己,所以下一個瀏覽視圖將正確地查詢/過濾數據。

例如,如果我要篩選的郵政編碼將URL如下: &上限= 20 &頁= 5 &郵編= 5

因爲我讓搜索喜歡%5%展示所有郵編5哪裏結果不僅限於5。它會顯示所有數據在任何值的位置都有5。

但是,如果我想篩選顯示所有58結果的郵編,我會輸入%58%。根據URL編碼,不幸的是,URL不會像預期的那樣是& postcode =%58%。這將是& postcode = X%。

問題是,是否有可能在URL中獲得正確的值?

問題出現在瀏覽器級別。如果我將URL從& postcode = X%直接更改爲& postcode =%58%並按回車,Chrome會將其直接轉換爲X%。

也許有可能以某種方式與meta標籤,HTTP報頭,或Javascript等

我通過GET而不是POST,因爲它是做它 - 很明顯 - 簡單與分頁程序集成。

對不起,我的英語不好。任何幫助將非常感激。

非常感謝。

+1

道歉,我應該說我正在使用MySQL。完美,我就是這樣做的。感謝您的回覆! – Dusty48

+0

很高興工作!我將評論移至回答 – billrichards

回答

0

由於您提到%%搜索,我假設您使用MySQL或其他SQL後端來查詢數據。在這種情況下,我會建議將querystring始終格式化爲postcode = 58 & page = 1,並添加一些其他參數以指示它是否應該是%通配符%搜索或完全匹配,並且如果通配符參數存在,則添加執行查詢時後端%%。

+0

這就是我所遵循的解決方案。但是,其他答案也可能提供正確的解決方法。 – Dusty48

1

您應該跳過「%」符號本身(即「%25」)。 PHP應該足夠聰明來自動解碼。

因此&postcode=%58%應該變成&postcode=%2558%25,PHP會解碼,所以$_GET['postcode']'%58%'

+0

感謝您的回覆,這是一個很好的建議。但是,我正在使用所提到的解決方案作爲對來自billrichards的我的問題的評論。 – Dusty48

1

在插入params之前,您應該將urlencode的值加入。

總的來說,如果你使用mysql,我同意billrichards。

+0

感謝您的回覆,這是一個很好的建議。不過,我正在使用解決方案作爲對我的問題的評論,來自billrichards – Dusty48