0

我正在尝试创建一个查询字符串,它将所有表单元素和输入的数据通过 GET 请求传递给 PHP 文件。

encodeURIComponent在 JavaScript 中使用对输入字段名称和字段值进行编码。

我遇到的是,字段值似乎传递得很好,因为我在 $ 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))

关于做什么的任何想法?

4

1 回答 1

1

This is PHP “protecting you”. If you try to pass GET variables containing dots, they'll be replaced by underscores. See Get PHP to stop replacing '.' characters in $_GET or $_POST arrays?

There is a way around that “protection” if you really must use dots in your name attributes: https://stackoverflow.com/a/1939911/2397004

于 2013-05-18T16:04:59.677 回答