我在php中开发am mcv框架,目前我的url格式是:
/admin/users/?action=add&method=admin
这将调用ADMIN控制器,然后在admin控制器中调用用户函数。用户函数加载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。
所以我需要表格方法=" post"表格数据和方法="得到"查询字符串
任何想法?
答案 0 :(得分:0)
如果我是你,我会倾向于避免这样做,你可能会感到非常困惑。此外,虽然它不是一成不变的,但通常认为将GET用于不会导致更改的操作,并且确实导致更改的操作应限于POST。
选项1:使用$ _REQUEST
$ _ REQUEST持有$ _GET,$ _POST和$ _COOKIE的汇总(也可能是$ _SERVER,也不能记得肯定)。
我强烈建议不要使用$ _REQUEST,但你无法知道你的值是来自$ _GET还是$ _POST,如果两者中都有相同的变量,则会覆盖另一个。
另一种选择是将请求的GET部分放在表单操作中。
<form method="post" action="file_to_process_form.php?get1=foo&get2=bar">
这更好,因为你知道变量的来源,但它可能会有点混乱,特别是如果有很多数据需要通过GET发送。
我个人认为,最好的办法就是尽量避免使用混合提交类型,只是尝试坚持GET或POST。
答案 1 :(得分:0)
我倾向于同意GordonM,不久之后会变得笨拙,说,你总是可以在你的表单上添加隐藏的输入并让你的控制器设置$ _GET ['Action'] = $ _POST ['行动'] ....