作者liar2 (liar)
看板Ajax
标题[问题] javascript传json给php
时间Fri Aug 24 23:38:23 2012
如题
做的东西有需要用javascript把编好的json
传到php中作处理存入mysql
php传到javascript我会
可是相反过来操作 我就不会了
这里附上我的程式码 不知道为什麽 在js端编出来的是正确的json
可是到了php decode後却不是正确的json
拜托各位了
js端:
其中member比较特别 是个阵列
$('input:checkbox:checked[name="mem"]').each(function(i)
{ new_members[i] = this.value;});
其他都是一般变数
var obj = {"title":new_title,
"time":new_time,
"content":new_content,
"member":new_members};
var json_obj = JSON.stringify(obj);
alert(json_obj);
$.ajax({
url:"receive_meeting_set.php",
type:"POST",
data:{"jdata":json_obj},
dataType:"text",
success:function(Jdata){
alert("tt");
alert(Jdata);},
error:function(){alert("伺服器发生错误");}
});
php端:
<?php
if($_POST['jdata']!=null)
{
$data= json_decode($_POST['jdata']);
echo $data." ".$_POST['jdata'];
}
?>
其中js我用alert(json_obj);会秀出
{"title":"123","time":"00:00","content":"123","member":["b","i","q"]}
应该是很正常的json没错
可是到php 我用echo $data." ".$_POST['jdata'];
会发现$data没有东西 而$POST_['jdata']却是这个
{\"title\":\"123\",\"time\":\"00:00\",\"content\":\"123\"
,\"member\":[\"b\",\"i\",\"q\"]}
找了好久找不到解决的方法
新手不是很懂json array的操作
希望大家可以帮忙~ 文章这麽长 看完的人谢谢搂~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.243.217.29
1F:→ kerash:ajax 的data已经是json了,为什麽还要去encode另一个? 08/25 00:09
什麽意思 有点不太懂
对json ajax一知半解 恳请大大详细教学QQ
※ 编辑: liar2 来自: 111.243.217.29 (08/25 00:11)
2F:推 kerash:就是你$.Ajax 中的data 就是使用json格式,丢到php当post 08/25 00:21
3F:→ kerash:参数使用就好,不用再decode 08/25 00:23
我将php那里不做decode
然後直接echo $_POST['jdata']->title後
是传回一个空的东西0.0
※ 编辑: liar2 来自: 111.243.217.29 (08/25 00:28)
4F:→ tyf99:stripslashes 08/25 05:15
5F:推 mrbigmouth:看你有没有把magic_quote打开 可能需要stripslashes 08/25 08:07
6F:→ nenpow:在php用var_dump(json_decode($_POST['data'],true))看看 08/25 10:59
7F:→ nenpow:但你的需求可能不需要用到JSON 08/25 11:02