只是一个普遍的问题.在表单操作方面,如果表单提交到其父页面,我意识到您可以使用""或"#"来提交表单.现在我的问题是当写一个包含处理程序和表单的php页面时,我被告知最好编写一个这样的表单操作:
action="<?php echo $_SERVER['PHP_SELF'] ?>"
//or
action="<?php echo $_SERVER['SCRIPT_NAME'] ?>"
Run Code Online (Sandbox Code Playgroud)
现在,如果您可以使用"#"将表单提交给自己,或者只是不设置表单操作,那么为什么还需要添加此内联脚本?我只是很好奇,因为补充说php确实会产生庞大而凌乱的外观形式代码(这看起来已经庞大而且看起来很乱).
我也明白,在您不使用PHP的情况下可以使用备用'#'和"",但我想真正的问题是为什么在不需要它的情况下添加PHP(在表单的实例中)提交到php页面).
谢谢,布罗迪
所有回应的Mahalo家伙.我意识到使用PHP代码生成url可能(在大多数情况下)是要采取的路径,因为只需更新浏览器或HTML就可以说""和"#"无效运营商提交到根页面.另外我知道'#'用于在同一页面上引用一个锚点,但我想我会看到每个人对它的看法.
首先,简单的部分:为什么首先要把一些东西放入价值中action.
那么,HTML 4规范说(强调我的):
action = uri
此属性指定表单处理代理程序.未定义 HTTP URI以外的值的用户代理行为.
因此,虽然几乎所有的浏览器最终都会将表单提交给脚本本身,但从技术上讲,这是一个你完全不应该依赖的快乐巧合.但是,这不是HTML 5的问题.
另外,#根据W3C的定义,它本身不是有效的URI,所以应该排除它也是无效的.
现在换另一半:如何在PHP中获取当前URL.
对于基本的使用方法,你可以使用任何一个$_SERVER['REQUEST_URI']和$_SERVER['PHP_SELF']这一点,取决于如果你想保留当前的任何URL GET参数上(PHP_SELF不包括他们,但REQUEST_URI会).
在更高级的场景中(例如使用框架编写代码),最好使用框架自己的URL生成实用程序函数为您生成URL(这会考虑路由等,因此更可取).
更新:我误读了HTML 5规范,它说你可以将动作留空.
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |