【发布时间】:2011-12-31 13:58:32
【问题描述】:
如果我想将一个数组从 PHP 发送到 JavaScript,我可以用 PHP 做这样的事情:
<?php
$json=array();
$json['datetime']="Something";
$json['timestamp']="Something else"
$encoded=json_encode($json);
die($encoded);
?>
这在 jQuery/JavaScript 上(使用 Ajax):
...
success: function(response){
var chat = jQuery.parseJSON(response);
datetime=chat['datetime'];
timestamp=chat['timestamp'];
...
我想知道是否要做相反的事情。
在 jQuery 中我有这个数组:
data_send['username']=$(".chat_username").val();
data_send['message']=$(".chat_message").val();
我想将此数组编码为 JSON 对象,通过 Ajax 发送此对象,然后从 $_POST/$_GET 获取此对象并将其解码为数组。
我该怎么做?
【问题讨论】:
-
你想像.post()一样将数据从客户端发送到服务器?
-
@ChrisPappas 为什么?将键值对发送到 CGI 脚本有一个标准格式,它是 not JSON!
-
@Alnitak 现在我使用类似
data: "name="+escape($(".chat_username").val())+"&message="+escape($(".chat_text").val()),这不适用于特殊字符和希腊字符(utf-8 编码) -
@Chris 因为您应该使用地图,而不是字符串 - 请参阅我的答案。
-
@ChrisPappas 也检查stackoverflow.com/a/2473382/1114171 如果你仍然有问题基本上建议使用encodeURIComponent