【问题标题】:submit a html form in php part post part get在 php 部分 post 部分 get 中提交一个 html 表单
【发布时间】:2012-01-27 15:28:34
【问题描述】:

我正在用 php 开发 am mcv 框架,目前我的 url 格式是:

/admin/users/?action=add&method=admin

这将调用 ADMIN 控制器,然后调用管理控制器中的用户函数。 user函数加载admin_model模型,action=add&method=admin会调用add_admin()函数。

如果您仍然关注,在每个模型中,我都有以下功能:

add_admin()
edit_admin()
view_admin()
add_agent()
edit_agent()

等等等等……

现在 add_admin() 函数返回一个用户填写并提交的 html 表单

在提交时,我想调用一个函数 post_admin()

所以我的网址应该是:

/admin/users/?action=post&method=admin

但是,我不能将 html 表单的操作设置为该 url。

所以我需要表单来 method="post" 表单数据和 method="get" 查询字符串

有什么想法吗?

【问题讨论】:

  • 你想让页面知道它被发布到了吗?如果是这样,它应该不需要知道。也许你可以澄清你的问题?发布代码也可能有帮助。

标签: php forms


【解决方案1】:

如果我是你,我会倾向于避免这样做,你可能会感到非常困惑。此外,虽然它不是一成不变的,但通常认为将 GET 用于不会导致更改的操作,而导致更改的操作应仅限于 POST。

选项 1:使用 $_REQUEST

$_REQUEST 包含 $_GET、$_POST 和 $_COOKIE 的集合(可能还有 $_SERVER,记不清了)。

我强烈建议不要使用 $_REQUEST,但您无法知道您的值是来自 $_GET 还是 $_POST,并且如果您在两者中具有相同的变量,则其中一个会覆盖另一个。

另一种选择是将请求的 GET 部分放在表单操作中。

<form method="post" action="file_to_process_form.php?get1=foo&amp;get2=bar">

这更好,因为您知道变量的来源,但它可能会有些混乱,特别是如果有大量数据需要通过 GET 发送。

就个人而言,我认为您最好的办法是完全避免混合提交类型,并尝试坚持使用 GET 或 POST。

【讨论】:

    【解决方案2】:

    我倾向于同意 GordonM 的观点,即这很快就会变得笨拙,也就是说,您始终可以在表单上添加隐藏输入并让您的控制器设置 $_GET['Action'] = $_POST ['行动']....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 2012-12-15
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      相关资源
      最近更新 更多