前端:
提交
後端:
結果test.html沒有看到傳回值,報錯。對於php後台接收json資料處於剛入門階段,求指點
回複內容:
前端:
提交
後端:
結果test.html沒有看到傳回值,報錯。對於php後台接收json資料處於剛入門階段,求指點
A) 已你的前端為準,php端需要這樣擷取
$json = file_get_contents('php://input');
因為是發送的是json資料,所以並不存在$_POST['data']這個東西。
B) 已你的後端為準,前端需要這樣發送
$.ajax({ type: "POST", url:"form.php", //contentType:"application/json;charset=utf-8", data: {data: JSON.stringify(json)}, //使用普通的索引值方式 error: function(request) { alert("Connection error"); }, success: function(data) { $("#container").html(data); }
前端傳的時候直接傳json
對象不用JSON.stringify
處理
後端 $_POST['zlclass'];
接收就行
照你現在這樣傳的話估計得php://input
中去取
var json = { "classid": 1, "zlclass": "測試" }; $("#btn").click(function() { $.ajax({ type: "POST", url:"form.php", dataType:'JSON', data: json, error: function(request) { alert("Connection error"); }, success: function(data) { $("#container").html(data); } }); });
後台直接$data=$_POST['classid'];
data:{ data:JSON.stringify(json)}
var_dump($_POST);看看裡面有什麼。。
我按照您的意思後台用:
$data = json_decode($_POST['data'],true); echo($_POST['data']);
接收到了資料:
前端代碼:
不知道這樣能解決您的問題嗎?
ajax上傳的不是json,data是json轉化成的表單資料,直接var_dump($_POST),不要用json處理,json是做傳回值用的。