浏览器端提交数据的时候一般都是通过GET或者POST方式来传输,比如/post.php?action=edit&id=1024,拿PHP来说,就是直接用$_GET和$_POST等超全局变量在任何地方访问这些用户输出的参数,比如取参数action的值,$_GET['action'].如果你是用PHP写CGI程序,那么你就需要自己获取这些参数,大概就是先URL解码,然后按&分割,再按=分割,获取参数的名和值.
$tmp = explode('&', urldecode('action=edit&id=1024'));
$get = array();
foreach($tmp as $v) {
$tmp2 = explode('=', $v);
foreach($tmp2 as $v2) {
$get[$tmp2[0]] = $tmp2[1];
}
}
print_r($get);
Windows
Ubuntu
Mac
上面的表单,如果勾选了3个复选框,那么提交后就对应这样的GET请求(一个数组):
info.php?os[]=Windows&os[]=Ubuntu&os[]=Mac&submit=提交
$_GET['os']:
Array
(
[0] => Windows
[1] => Ubuntu
[2] => Mac
)
如果你用POST方式的话可以在Firebug之类的工具的网络里看到这个信息,而不像GET显示在URL,并记录到Web服务器的日志里.
一般是浏览器端通过AJAX访问服务器端获取数据时,服务器端才返回JSON数据,而不是浏览器端向服务器端提交JSON数据.JSON是JS里的一种数据结构,就像数组至于PHP,而PHP可以通过json_encode/json_decode在数组和JSON之间转换,PHP里的数组不区分数字数组和字典(键值对/哈希表),PHP可以用数组保存从数据库中查出的结果集,经过数组处理后json_encode成JSON串,然后返回给浏览器.浏览器端可以用jQuery.parseJSON(data)或JSON.parse(data)或eval('(' + data + ')')把返回的JSON串转成JS对象进行操作.