我试图创建一个查询字符串,它通过GET请求传递所有表单元素和输入的数据到PHP文件。
我在JavaScript中使用encodeURIComponent
来编码输入字段名称以及字段值。
我遇到的是,字段值似乎被传递得很好,因为我在$GET中正确地接收它们,但是字段名将有点(.)被下划线()代替。
的例子:
<input type="text" name="form.0.text.0" value="" />
这个field.name将到达我的PHP脚本作为form_0_text_0
而不是form.0.text.0
,而输入的文本(例如this contains a lot of ....
)将到达。
我使用以下代码作为查询字符串生成的一部分:
+ encodeURIComponent(field.name) + "=" + (field.type == "checkbox" ? (field.checked) : encodeURIComponent(field.value))
有什么好主意吗?
这是PHP "保护你"。如果您试图传递包含点的GET变量,它们将被下划线替换。参见Get PHP停止替换'.'字符在$_GET或$_POST数组?
如果你真的必须在你的名字属性中使用点的话,有一种方法可以绕过这个"保护":https://stackoverflow.com/a/1939911/2397004