2012-07-15 132 views
1

行動PARAMS在我的HTML表單,我需要這樣的URL輸出: 「example.com/mycontroller/action/mike/apple」傳遞表單值控制器CakePHP的

  • 當我提交表格「張貼「我的表單值不可見,並可以通過」_POST「。我不喜歡這樣做,因爲它使得輸出如下所示:「example.com/mycontroller/action/」
  • 當我用「get」提交時,我的表單變成了「example.com/mycontroller/action?type=mike & key = apple「
  • 我也不喜歡用javascript來改變表單動作,例如:」onSubmit獲取select的值並將其附加到表單動作中「因爲我不希望這個代碼片斷是javascript依賴的。
  • 我可以使用「get」或「post」解析POST或GET的系統變量來提交表單並進行重定向。像這樣: 重定向這個「example.com/mycontroller/action?type=mike & key = apple」到這個「example.com/mycontroller/action/mike/apple」 但我沒有找到這個解決方案設計得很好。 是否有可能通過表單值用斜槓(除questiın引號)

    < form class="well form-horizontal" id="myform" 
          method="get" action="/mycontroller/action" > 
         <select name="type" id="type"> 
          <option value="mike" selected="selected"> 
               mickey bricks</option> 
          <option value="albie">albert</option> 
         </select> 
    
         <input type="text" name="key" class="input-xlarge" 
            id="key" required="required"> 
    
         <button type="submit" class="btn btn-primary" id="submit"> 
          submit 
         </button> 
        </form> 
    
+1

什麼網址看起來應該是你最後關心的事情。 – 2012-07-15 09:59:00

+0

也有 - 這就是爲什麼這些形式的網址將是它的方式後/得到 – mark 2012-07-15 10:02:29

+0

這些東西(麥克和蘋果)採取的形式值或事先知道(提交之前)? – 2012-07-15 11:31:56

回答

1

如果你犯了一個POST形式,它並沒有真正身在何處,它發佈,重要的是它在哪裏重定向。許多網站搜索重定向到www.domain.com/search/search_terms,所以如果這是一個搜索表單,重定向到../action/mike/apple沒有任何問題。

此外,如果它是一個POST表單,它不會被搜索爬蟲填充(或至少不是我所知),所以表單發送到什麼地方也無關緊要,重要的是返回值以及它重定向的位置。

這一切都取決於你想要完成什麼。

+0

謝謝你的回覆。因此,您推薦使用** POST **操作提交fom,並檢查POST數據並將訪問者重定向到** ../action/mike/apple **頁面。 – trante 2012-07-15 20:27:08

+1

@trante:在我看來,這聽起來很正確,特別是如果它只是一個搜索表單。 – 2012-07-15 21:36:27

+0

是的它是一個網站搜索表單。 – trante 2012-07-15 23:58:01