代码之家  ›  专栏  ›  技术社区  ›  trante

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

  •  1
  • trante  · 技术社区  · 12 年前

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

    • 当我用“post”提交表单时,我的表单值不可见,可以通过“_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/smycontroller/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 回复  |  直到 12 年前
        1
  •  1
  •   dr Hannibal Lecter    12 年前

    如果你 POST 形式,它在哪里发布并不重要 ,重要的是它重定向到哪里。许多网站搜索会将您重定向到www.domain.com/search/search_terms,因此如果这是一个搜索表单,则重定向到也没有错 ../action/mike/apple

    此外,如果是 岗位 表单,它不会被搜索爬虫填写(或者至少据我所知),所以表单发布到哪里并不重要,重要的是返回值和重定向到哪里。

    这真的取决于你想完成什么。