【发布时间】:2014-11-07 06:09:23
【问题描述】:
我正在尝试使用哈希 (%in) 中的 ReadParse() 函数从表单中读取值,我没有按照我在表单中提交的顺序获取元素,我希望获得与我在表单中提交的相同的顺序, 请给我解决方案。谢谢。
【问题讨论】:
-
向我们展示你到目前为止所做的尝试。
标签: perl webmin-module-development
我正在尝试使用哈希 (%in) 中的 ReadParse() 函数从表单中读取值,我没有按照我在表单中提交的顺序获取元素,我希望获得与我在表单中提交的相同的顺序, 请给我解决方案。谢谢。
【问题讨论】:
标签: perl webmin-module-development
检查perldoc CGIFETCHING THE NAMES OF ALL THE PARAMETERS PASSED TO YOUR SCRIPT:
my @names = $query->param;
从 1.5 版开始,返回的参数名称数组将与浏览器提交的顺序相同。通常此顺序与在表单中定义参数的顺序相同(但是,这不是规范的一部分,因此无法保证)。
【讨论】:
哈希键/值不按添加顺序存储。
你想完成什么?也许还有其他方法?
我没有意识到 HTML 规范中指定了顺序:
应用程序/x-www-form-urlencoded
这是默认的内容类型。与此内容一起提交的表格 类型必须编码如下:
- 控件名称和值被转义。空格字符替换为 '+',然后保留字符被转义,如 [RFC1738],第 2.2 节:非字母数字字符替换为 '%HH',一个百分号和两个十六进制数字表示 字符的 ASCII 码。换行符表示为“CR LF” 对(即“%0D%0A”)。
- 控件名称/值列在 它们出现在文档中的顺序。名字是分开的 '=' 的值和名称/值对通过 '&'。 [http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4]
【讨论】: