如何通过GET或POST将关联数组传递给其他形式?
有什么办法或我是否需要先将其转换为逗号分隔的字符串?
答案 0 :(得分:2)
如果您的意思是将Javascript数组传递给PHP,那么答案就是使用JSON。
JSON基本上是Javascript对象结构的字符串表示。您可以将Javascript对象转换为适合使用多个库之一发送到服务器的JSON字符串(现代浏览器内置.stringify()
方法,但旧版浏览器不支持,因此您需要这是一个图书馆。 JQuery是显而易见的候选人,但还有很多其他人可以完成这项任务。实际技术会因您使用的库而异,所以我不会尝试在此处发布代码示例。
当您在PHP中收到字符串时,您可以使用PHP的json_decode()
函数将其转换为PHP数组。
向相反的方向发展,您可以将PHP数组编码为带有json_encode()
的JSON字符串,并将其读入您的Javascript应该相当容易(同样,现代浏览器具有内置功能;最坏的情况是您可以简单地eval()
,但这样做有风险,所以我建议再次使用库来完成任务)
即使你的进程的一端不是Javascript,你仍然可以使用JSON,因为几乎每种语言现在都能够编码/解码JSON字符串。即使你在一个PHP程序和另一个PHP程序之间进行通信,你也可以这样做。
如果 完全是PHP-> PHP通信,您可以轻松使用serialize()
和unserialize()
,这会产生与JSON不同的字符串格式;为了您的目的,它以相同的方式工作,但它是一种特定于PHP的格式,因此通常首选JSON。
答案 1 :(得分:1)
将其转换为转义的JSON字符串是一种很好的方法。看看json_encode(object)
答案 2 :(得分:0)
以POST为例:
<form action="page.php" method="POST">
<input type="hidden" name="value1" value="1" />
<input type="submit" />
</form>
将此传递给page.php
$_POST['value1'] // equals 1
作为带有jQuery的AJAX:
$.ajax({
data: $('#form').serialize() // or [{key: 'value'}, {key: 'value2'}],
url: 'page.php'
})
答案 3 :(得分:0)