【问题标题】:Insert cakephp POST params into URL将 cakephp POST 参数插入 URL
【发布时间】:2023-04-06 15:43:01
【问题描述】:

我在下面有这个表格,其中包含两个复选框来对一些产品进行排序:

<form id="FiltreExtraForm" action="" method="post" name="FiltreExtraForm">
    <input id="ProductsDeliveryPrice" type="checkbox" value="1" name="data[Products][delivery_price]"/>
    <input id="ProductsPicture" type="checkbox" value="1" name="data[Products][picture]"/>
</form>

在 POST 之后我进行过滤,但我还想将接收到的参数添加到 URL,例如:/products/index/delivery_price:1/picture:0。这可能吗。我该怎么做?

注意:我不想使用 GET 发送表单信息。

【问题讨论】:

  • 我不想告诉你,但 GET URL。两者是一回事。
  • 是的。但我不想在 URL 中发送表单参数。我想在控制器的某个地方手动添加它们,以便能够根据需要对其进行格式化并让它们可供以后使用
  • 你想要完成什么?如果你只想要 URL 的东西,你可以发布变量,在控制器中循环它们,然后重定向到 GET url。或者您可以使用 javascript 覆盖表单提交按钮,并将您的应用程序逻辑放在 js 代码中。我想不出你想要这样做而不是其他事情的情况。你这样做的用例是什么?
  • GET 附加到 URL - 它不是 URL。

标签: url cakephp params


【解决方案1】:

听起来你正在寻找Post/Redirect/Get

以下是在 CakePHP 中执行此操作的两个示例:

POST 重定向到GET 请求的两个主要优点是:

  1. 用户没有收到“您要重新提交吗?”刷新时的对话框
  2. 可以将生成的页面/查询添加为书签

【讨论】:

    【解决方案2】:

    在您发布的操作中,您可以简单地准备 GET url,然后重定向到该 url。然后该 url 的操作会进行过滤。

    【讨论】:

      【解决方案3】:

      如果我理解正确(我不确定我是否理解),您可以很容易地在表单操作的查询字符串上传递其他变量。按照惯例,这可能看起来像这样:

      <form id="FiltreExtraForm" action="/products/index?delivery_price=1&picture=0" method="post" name="FiltreExtraForm">
      

      如果你愿意的话,使用 Cake,你应该能够在没有传统查询字符串的情况下做同样的事情(尽管上面的传统方法也可以):

      <form id="FiltreExtraForm" action="/products/index/delivery_price:1/picture:0" method="post" name="FiltreExtraForm"> 
      

      我建议查看表单帮助程序或至少使用帮助程序构建操作 URI,但这应该可以满足您的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-27
        • 2023-03-10
        • 1970-01-01
        • 2013-12-25
        相关资源
        最近更新 更多