作者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
→ kerash:ajax 的data已經是json了,為什麼還要去encode另一個? 08/25 00:09
什麼意思 有點不太懂
對json ajax一知半解 懇請大大詳細教學QQ
※ 編輯: liar2 來自: 111.243.217.29 (08/25 00:11)
推 kerash:就是你$.Ajax 中的data 就是使用json格式,丟到php當post 08/25 00:21
→ kerash:參數使用就好,不用再decode 08/25 00:23
我將php那裡不做decode
然後直接echo $_POST['jdata']->title後
是傳回一個空的東西0.0
※ 編輯: liar2 來自: 111.243.217.29 (08/25 00:28)
→ tyf99:stripslashes 08/25 05:15
推 mrbigmouth:看你有沒有把magic_quote打開 可能需要stripslashes 08/25 08:07
→ nenpow:在php用var_dump(json_decode($_POST['data'],true))看看 08/25 10:59
→ nenpow:但你的需求可能不需要用到JSON 08/25 11:02