【问题标题】:Codeigniter 4 form action pathCodeigniter 4 表单动作路径
【发布时间】:2020-09-05 18:09:32
【问题描述】:

很抱歉这个菜鸟问题。我有一个页面:www.example.com/edit/3,里面有表单。

<form class="" action="" method="post">

通常我的表单操作会指定添加、注册等内容。在这种情况下,我不确定如何指定它。目前,如果我将其留空而不指定任何内容,则当我保存它时它正在工作。但我不确定这是不是正确的做法。

控制器

public function edit_game(){}

路线

$routes->match(['get', 'post'], 'account/edit_game/(:num)', 'Addgame::edit_game/$1');

谁能给点建议?

【问题讨论】:

  • 在 action="" 的情况下,您可以完全忽略它。仅当您想将表单数据“发送”到“其他地方”到另一个文件来处理它时才需要它。在使用 form_open() 和朋友的情况下,只需将操作设置为 ''。一切都很好。
  • @TimBrownlaw 我明白了,所以我可以保持原样,对吧?我已经用我当前的控制器以及我的路线更新了我的问题。

标签: forms codeigniter-4


【解决方案1】:

action="" 是将表单数据发送到的 URI,也就是您处理接收到的数据的控制器。如果未指定,它将与您当前所在的页面相同。

你可以做什么:

<form method="post">
</form>

<form method="post" action=""> <!-- same as previous -->
</form>

<form method="post" action="/some/page">
</form>

在最后一个例子中,注意前面的/,表示它是根据站点根目录。如果你忘记了,它将是相对于当前 URI 的。

例如,如果包含&lt;form&gt;的页面是http://example.com/edit/3

  • action="/some/page" 将重定向到 http://example.com/some/page
  • action="some/page" 将重定向到 http://example.com/edit/some/page

【讨论】:

  • 感谢您的建议,我已经用我当前的控制器和路由更新了我的问题。所以根据你的回答,我想我也可以把它留空?
  • 是的,甚至完全删除它。旁注,通过在 app/Config/Routes.php 中设置 $routes-&gt;setTranslateURIDashes(true);,您可以在 URL 中使用破折号:site.com/account/edit-game/3 => Account::edit_game(3)- 变为 _ .
  • 感谢您的建议。我尝试将其设置为 true,但它不起作用。
猜你喜欢
  • 2016-09-26
  • 2021-07-13
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
  • 2021-03-10
相关资源
最近更新 更多