2012-10-10 45 views
0

分頁衝突這是我的情況:我 有頁面本地主機/ CTC /產品展示產品和本地主機/ CTC /產品/ abcxyz顯示個別產品abcxyz的細節。它工作正常,直到我想分頁我的主頁,因爲產品列表太長。我使用普通的分頁類來分頁,但是當我來到下一頁時,url變成這樣:localhost/ctc/product/1我認爲它將分頁編號誤認爲產品,頁面沒有顯示任何內容。那我該如何解決這個問題呢?謝謝你們,併爲我英文破碎而感到遺憾。笨:與參數

問題解決。感謝John B和otporan。

+0

個人而言,我會用不同的功能,以顯示產品細節,但如果你堅持你很可能使用的URI段的is_numeric()來函數計算出的東西和有它採取相應的行動 – Rooster

+0

非常感謝。 –

回答

1

你應該用正則表達式限制url的最後一個參數。

你有3種途徑:

ctc/product 
ctc/product/abcxyz 
ctc/product/1 

你必須解釋路由器機制,2路線應該只接受字符串作爲最後PARAM, 和第三路線只能接受數作爲最後PARAM。

你可以這樣說:

$route['ctc/product/([a-z]+)'] = "controller/method/$1"; 
$route['ctc/product/([0-9]+)'] = "controller/method/$1"; 

所以,現在你有2條途徑有相同數量的URI「PARAMS」,但路由器是知道的差異。一個將字符串作爲最後一個參數,最後一個路由將最後一個參數作爲整數。

我沒有時間在本地服務器上進行測試。但你應該明白這應該如何工作。

過不去通讀文檔瀏覽:Codeigniter Routing

+0

+1,但只需要注意,如果您需要接受比字符a至z更多的字符,則必須更新正則表達式才能接受該字符串,或者只需在其位置使用'(:any)'。 – Brendan