无法将操作获取参数传递给 PHP 文件

Can not pass the action get param to the PHP file

我有一个 smarty 项目,在 .tpl 文件中,有一个表格:

<form method="get" action="{$smarty.server.PHP_SELF}?action=func1">
    <input type="text" name="username"/>
    <input type="submit">
</form>

有个问题,如果php文件有很多函数针对不同的action requests,那么模板中如果有很多表单,我想通过action来区分。

但是在我的实践中,看到上面的代码,我是这样写的,这不能将action传递到我的php文件中。

我想把action写在form action里,因为这样可以更规范。所以我不想把它写在隐藏的输入中。为什么write in action不能传入php文件?

您可以使用具有指定名称和值的提交按钮:

<form method="get" action="{$smarty.server.PHP_SELF}">
    <input type="text" name="username" />
    <input type="submit" name="action" value="func1" />
</form>

然后你会得到一个全局变量 $_POST['action'],其值为 func1。但是该值将显示在您的按钮标题上,因此我建议您仅通过提交名称查找表单,例如 name='submit_form1'.