[問題] javascript傳json給php

看板Ajax作者 (liar)時間13年前 (2012/08/24 23:38), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/2 (看更多)
如題 做的東西有需要用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

08/25 00:09, , 1F
ajax 的data已經是json了,為什麼還要去encode另一個?
08/25 00:09, 1F
什麼意思 有點不太懂 對json ajax一知半解 懇請大大詳細教學QQ ※ 編輯: liar2 來自: 111.243.217.29 (08/25 00:11)

08/25 00:21, , 2F
就是你$.Ajax 中的data 就是使用json格式,丟到php當post
08/25 00:21, 2F

08/25 00:23, , 3F
參數使用就好,不用再decode
08/25 00:23, 3F
我將php那裡不做decode 然後直接echo $_POST['jdata']->title後 是傳回一個空的東西0.0 ※ 編輯: liar2 來自: 111.243.217.29 (08/25 00:28)

08/25 05:15, , 4F
stripslashes
08/25 05:15, 4F

08/25 08:07, , 5F
看你有沒有把magic_quote打開 可能需要stripslashes
08/25 08:07, 5F

08/25 10:59, , 6F
在php用var_dump(json_decode($_POST['data'],true))看看
08/25 10:59, 6F

08/25 11:02, , 7F
但你的需求可能不需要用到JSON
08/25 11:02, 7F
文章代碼(AID): #1GDv_qHB (Ajax)
文章代碼(AID): #1GDv_qHB (Ajax)