将表单值传递给CakePHP中的控制器操作参数

时间:2012-07-15 09:51:53

标签: php html cakephp cakephp-2.0 html-form

在我的HTML表单中,我需要这样的URL输出: “example.com/mycontroller/action/mike/apple”

  • 当我用“帖子”提交表单时,我的表单值不可见,可以通过“_POST”。我不喜欢这个,因为它输出如下:“example.com/mycontroller/action /”
  • 当我以“get”提交时,我的表格变为“example.com/mycontroller/action?type=mike&key=apple”
  • 我也不喜欢用javascript更改表单操作,例如:“onSubmit取值select并将其附加到表单操作”因为我不希望这段代码依赖于javascript。
  • 我可以使用POST或GET的“get”或“post”解析系统变量提交表单并进行重定向。像这样: 将此“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 个答案:

答案 0 :(得分:1)

如果您制作POST表单,将发布到的位置并不重要,重要的是重定向位置。许多网站搜索会将您重定向到www.domain.com/search/search_terms,因此如果这是一个搜索表单,重定向到../action/mike/apple没有任何问题。

此外,如果它是POST表单,则搜索抓取工具不会填写(或者至少不是我所知),所以表单发布到哪里也无关紧要,重要的是返回值以及重定向的位置。

这一切都取决于你想要完成的任务。