我正在尝试创建一个查询字符串,它通过GET请求将所有表单元素和输入的数据传递给PHP文件。
我在JavaScript中使用encodeURIComponent
来编码输入字段名称和字段值。
我遇到的是字段值似乎传递得很好,因为我在$ GET中正确接收它们,但字段名称将点(。)替换为下划线( )。
示例:
<input type="text" name="form.0.text.0" value="" />
此field.name将以form_0_text_0
而不是form.0.text.0
到达我的PHP脚本,而输入的文本(例如this contains a lot of ....
)将很快到达。
我正在使用以下代码作为查询字符串生成的一部分:
+ encodeURIComponent(field.name) + "=" + (field.type == "checkbox" ? (field.checked) : encodeURIComponent(field.value))
关于该做什么的任何想法?
答案 0 :(得分:1)
这是PHP“保护你”。如果您尝试传递包含点的GET变量,它们将被下划线替换。见Get PHP to stop replacing '.' characters in $_GET or $_POST arrays?
如果你真的必须在你的名字属性中使用点,那么就可以绕过这种“保护”:https://stackoverflow.com/a/1939911/2397004