我遇到了一个HTML表单,其中一个字段是多选字段。当我提交表单作为POST一切正常,我可以看到并使用该数组。作为GET提交时,表单的多选部分仅显示string(5) "Array"
。字面上的字Array
。我正在使用内置在调试工具包中的CakePHP查看查询字符串。
这是URL
http://www.domain.com/?keywords=&location%5B%5D=12333&location%5B%5D=42123
的重要组成部分,这里被定位阵列。但是,当我看着服务器变量它变为:
Query String keywords=&location=Array
这里location
只是打印字Array
。无论我尝试什么,我都无法将位置数组传递给PHP。有没有在php.ini
允许这个设置?有没有其他方法可以正确地工作?为了保存搜索,我需要这个GET查询。
的$_GET
var_dump
(上述情况略有不同的查询):
array(10) {
["agent"]=> string(0) ""
["price_min"]=> string(1) "0"
["price_max"]=> string(9) "987654321"
["beds"]=> string(0) ""
["baths"]=> string(0) ""
["mls"]=> string(0) ""
["pool"]=> string(1) "0"
["spa"]=> string(1) "0"
["keywords"]=> string(0) ""
["location"]=> string(5) "Array"
}
你能否解释一下吗? – Rymn
URL编码的PHP数组的字符串表示形式如何?也许使用[serialize](http://php.net/manual/en/function.serialize.php)...但真的,听起来你应该看看发送POST。或者,如果数组不太复杂,则将它分解为像GET那样的键/对值。 – ficuscr
你不应该使用'$ _GET'变量。这就是'$ this-> request-> data'和'$ this-> request-> query'的用途。尝试使用'debug($ this-> request-> query)' – Eagle