对于url中参数值的传递,在数组方面可能显得无能为力。但在php中,我们可以使用serialize()将数组序列化,得到一个字符串,这样就可以很轻易的传递了。当得到该字符串后,我们使用unserialize()将这个字符串反序列化,得到原来的数组。
然而,我们在js和js或者js和php中怎么传递数组呢?因为在js中,没有这样(serialize)的函数,所以我们只有使用自定义的函数将数组转化为字符串,这样虽然也能实现,但运行效率却降低了。 在ajax中,我们可以使用xml标准数据存储格式进行数据传递,但如果只是传递简单的比如“0”,“1”之类的,根本用不着xml那样复杂的格式,那样反而降低了效率。对于简单的数组,我们也不必先按照xml死板的格式封装数据,而只需要使用函数serialize()将它序列化,然后通过xmlhttprequest返回给客户端。在客户端,因为是js处理,所以不能用php现成的unserialize()函数来将它反序列化,于是需要引用到两个js文件:utf.js(编码转换)和Phpserializer.js(封装serialize和unserialize函数)。
var a = 's:31:"{"name":"芝麻教程","url":"www.web3.xin"}"';
function test() {
var arr = new Array(1, 2, 3);
var arr2 = new Array('a', 'b', 'c');
arr['test'] = arr2;
var obj = {
x: arr
};
var str = serialize(obj);
alert(str);
}
alert(unserialize(a));
test();
[立即下载实例包](http://pan.baidu.com/s/1jIohY1g 密码: dcrc) 提取码:dcrc