2017-01-12 35 views
0

我用jQuery數據變量發佈閱讀,但PHP是無法讀取數據變量的Json字符串化不能用PHP

JavaScript端:

var data = JSON.stringify(details); 

$.ajax({ 
data: data, 
type: 'POST', 
url: '/dashboard/example.php', 
}); 

PHP端:

$json=json_decode($_POST['data']); 
foreach ($json as $value) { 

...SQL update... 

} 

如果我這樣在PHP中聲明數據變量,它是有效的,但發佈不起作用。

$string='[{"node":{"_DT_RowIndex":1},"oldData":"2","newData":"1","newPosition":0,"oldPosition":1},{"node":{"_DT_RowIndex":2},"oldData":"3","newData":"2","newPosition":1,"oldPosition":2},{"node":{"_DT_RowIndex":3},"oldData":"4","newData":"3","newPosition":2,"oldPosition":3},{"node":{"_DT_RowIndex":0},"oldData":"1","newData":"4","newPosition":3,"oldPosition":0}]'; 

$json=json_decode($_POST['data']); 


foreach ($json as $value) { 
... 
} 

你能幫我嗎?

+0

var dump'$ _POST ['data']'解碼之前,看看它是什麼? –

+0

只需打印出$ _POST ['data']'並相應地工作。或嘗試一次'data:''「+ data +」'「,' –

+0

我無法在PHP文件中回顯,因此var_dump無法工作 – hamozoo

回答

0

jQuery.ajax dosen't用密鑰data發佈您的自定義數據,密鑰來自您的數據。

例如,如果你的數據是:

data: {foo: "Bar"} 

然後$_POST['foo']會給你Bar

如果你想獲得整個數據與$_POST['data'],你必須先設置密鑰。

$.ajax({ 
    data: { 
    data: data 
    }, 
    type: 'POST', 
    url: '/dashboard/example.php', 
}); 

現在你$_POST將有data關鍵。無論你想要什麼,你都可以重命名這個鍵

+0

@ user7408955這是否解決了您的問題? –