如何把javascript中的数组传递给PHP?

我不是程序员 2012-10-10 04:03:38
如题,请教如何把javascript的数组传递到php页面呢?这个数组的每个元素都是一个对象。
...全文
853 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbjbepzz 2012-10-15
  • 打赏
  • 举报
回复
有提交的时候,先将数据转换成json的字符串格式

zNodes = JSON.stringify(zNodes);

执行上面这个方法,会返回一下json的字符串。

PHP代码

json_decode($_POST['zNodes']);

如果上面那个方法 ,就用下面的。

json_decode(stripslashes($_POST['zNodes']));

将json字符串转换成一个对象
我不是程序员 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

HTML code
<script type="text/javascript" src="http://www.coding123.net/rardownload/20110420/20110420113851756.js"></script><!--倒入json.js文件,序列化json对象用的-->
<script type="text/javascript" src="http://w……
[
/Quote]
我这样处理的时候行:url:'xxxx.php'//改为你的动态页 报错:对象没有改属性,请问这是为什么呢?
这两行:
<script type="text/javascript" src="http://www.coding123.net/rardownload/20110420/20110420113851756.js"></script><!--倒入json.js文件,序列化json对象用的-->
<script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script>
是什么意思啊?我没有加上
Kilin_Zhang 2012-10-11
  • 打赏
  • 举报
回复
亲,web服务端只接受字符串的参数。
要传对象就先得把对象序列化为一个字符串,最常用的就是JSON,然后服务端再对这个字符串进行反序列化,从而得到需要的对象。
Go 旅城通票 2012-10-10
  • 打赏
  • 举报
回复
<script type="text/javascript" src="http://www.coding123.net/rardownload/20110420/20110420113851756.js"></script><!--倒入json.js文件,序列化json对象用的-->
<script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script>
<script type="text/javascript">
var zNodes =[
{ id:1, pId:0, name:"随意勾选 1", open:true},
{ id:11, pId:1, name:"随意勾选 1-1", open:true},
{ id:111, pId:11, name:"随意勾选 1-1-1"},
{ id:112, pId:11, name:"随意勾选 1-1-2"},
{ id:12, pId:1, name:"随意勾选 1-2", open:true},
{ id:121, pId:12, name:"随意勾选 1-2-1"},
{ id:122, pId:12, name:"随意勾选 1-2-2"},
{ id:2, pId:0, name:"随意勾选 2", checked:true, open:true},
{ id:21, pId:2, name:"随意勾选 2-1"},
{ id:22, pId:2, name:"随意勾选 2-2", open:true},
{ id:221, pId:22, name:"随意勾选 2-2-1", checked:true},
{ id:222, pId:22, name:"随意勾选 2-2-2"},
{ id:23, pId:2, name:"随意勾选 2-3"}
];

$.ajax({
url:'xxxx.php'//改为你的动态页
,type:'POST'
,data:{zNodes:zNodes.toJSONString()}//调用json.js类库将json对象转换为对应的JSON结构字符串
,success:function(rst){alert('PHP接收JSON数据成功!');}
,error:function(xhr){alert('PHP页面有错误!'+xhr.responseText);}
}});
</script>



xxxx.php
$zNodes=$_POST["zNodes"];
$json=json_decode($zNodes);//转化为JSON对象


参考
PHP JSON使用教程
Json.js
  • 打赏
  • 举报
回复
前台把JSON对象数组转化成字串:

<script>
var zNodes =[
{ id:1, pId:0, name:"随意勾选 1", open:true},
{ id:11, pId:1, name:"随意勾选 1-1", open:true},
{ id:111, pId:11, name:"随意勾选 1-1-1"},
{ id:112, pId:11, name:"随意勾选 1-1-2"},
{ id:12, pId:1, name:"随意勾选 1-2", open:true},
{ id:121, pId:12, name:"随意勾选 1-2-1"},
{ id:122, pId:12, name:"随意勾选 1-2-2"},
{ id:2, pId:0, name:"随意勾选 2", checked:true, open:true},
{ id:21, pId:2, name:"随意勾选 2-1"},
{ id:22, pId:2, name:"随意勾选 2-2", open:true},
{ id:221, pId:22, name:"随意勾选 2-2-1", checked:true},
{ id:222, pId:22, name:"随意勾选 2-2-2"},
{ id:23, pId:2, name:"随意勾选 2-3"}
];

function theforever_csdn(o) {
var r = [];
if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";
if (typeof o == "object") {
if (!o.sort) {
for (var i in o)
r.push(i + ":" + theforever_csdn(o[i]));
if (!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {
r.push("toString:" + o.toString.toString());
}
r = "{" + r.join() + "}";
} else {
for (var i = 0; i < o.length; i++) {
r.push(theforever_csdn(o[i]));
}
r = "[" + r.join() + "]";
}
return r;
}
return o.toString();
}

alert('json数组已经转化成字串'+theforever_csdn(zNodes)+',可以发送给后台了');
</script>



PHP接收后进行解析就是楼主的专业了。
KK3K2005 2012-10-10
  • 打赏
  • 举报
回复
2楼说的很明白
如你所说 基础差的原因 就因为你在求代码
我不是程序员 2012-10-10
  • 打赏
  • 举报
回复
比如数组是:
var zNodes =[
{ id:1, pId:0, name:"随意勾选 1", open:true},
{ id:11, pId:1, name:"随意勾选 1-1", open:true},
{ id:111, pId:11, name:"随意勾选 1-1-1"},
{ id:112, pId:11, name:"随意勾选 1-1-2"},
{ id:12, pId:1, name:"随意勾选 1-2", open:true},
{ id:121, pId:12, name:"随意勾选 1-2-1"},
{ id:122, pId:12, name:"随意勾选 1-2-2"},
{ id:2, pId:0, name:"随意勾选 2", checked:true, open:true},
{ id:21, pId:2, name:"随意勾选 2-1"},
{ id:22, pId:2, name:"随意勾选 2-2", open:true},
{ id:221, pId:22, name:"随意勾选 2-2-1", checked:true},
{ id:222, pId:22, name:"随意勾选 2-2-2"},
{ id:23, pId:2, name:"随意勾选 2-3"}
];
请教具体的转换代码。基础太差,最近弄这个东西弄晕了,麻烦大侠们帮帮忙,赐予我具体的代码示例
  • 打赏
  • 举报
回复
把对象数组转成JASON串,PHP收到后转化成JASON对象进行读取。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧