2017-09-15 23 views
3

有沒有一種方法來更改表單提交上的默認URL形成?使表單URL提交看起來像路線而不是查詢字符串

以下是我有:

<form action="<?php echo base_url('some_controller/some_method'); ?>" method="GET"> 
    <select name="foo"> 
     <option value="1">bar</option> 
     <option value="2">Wubba lubba dub dub</option> 
    </select> 
    <button type="submit">Send</button> 
</form> 

當我點擊該按鈕,則網址:(不想

localhost/some_controller/some_method?foo=2 

有沒有辦法讓它像下面? (預期結果

localhost/some_controller/some_method/2 

它是可以實現的,只有PHP /笨?或者也許在HTML?
(可它沒有JavaScript和沒有htaccess的做什麼?)

我不使用form_open方法覺得有什麼差別。

+2

爲什麼不使用POST而不是GET? –

+0

@BrianGottier for freeeeedom。不,但嚴重。對於這個: – FirstOne

+2

那麼你的答案是否定的,這是不可能的。 PHP發送給瀏覽器後,您無法操作HTML輸出。你將不得不使用JavaScript。 –

回答

0

這是因爲你的方法是GET。如果您將方法更改爲POST,則信息將從URL中消失。但是,根據您的觀點,它會有不同的副作用,無論是好還是壞:

  1. 如果在codeigniter中打開該文件,它將置於CSRF保護的作用域中。
  2. 如果返回到POST提交結果的頁面,您將收到「您想重新提交嗎?」 - 來自瀏覽器的消息類型。

唯一的另一種選擇是通過javascript在後臺執行ajax請求。

+0

我已經想到了一些替代解決方案,但我希望找到一個答案,展示如何以預期的方式完成此任務。 – FirstOne

相關問題