我有一堆需要傳遞給服務器的值,而且我似乎無法獲得像JSON解碼這樣的基本功能。有什麼東西是在這裏,我會感謝有人看看它如何將JavaScript對象的數組傳遞給PHP?
我有一個動態生成的表與可編輯的值,當用戶單擊添加按鈕時,抓住它,將其推入一個數組,並將其發送到服務器與Ajax呼叫。以下是我從console.log(data)複製的樣本數據;線。
var data = params + "&Details="+JSON.stringify(Details);
console.log(data); // &Id[]=1566&aId[]=1567&Details=[["1566","First File","sdf.pdf","general","file","",""],["1567","2nd file","test.png","image","file","",""]]
$.ajax({
type: 'POST',
url: editUrl,
dataType: 'json',
data: data,
success: function() { console.log('success'); }
error: function() { console.log('error'); }
});
在服務器端,我得到的數據,但我不能把它解析成可用的格式
$ids = ($_POST['Id']); // this is a valid array
$details = ($_POST['Details']); // [[ 1566 , First File , , general , file , , ],[ 1567 , 2nd file , , image , file , , ]]
$details = json_decode($details); // getting JSON_ERROR_CTRL_CHAR error and null is returned
任何想法在這裏是怎麼回事?
到URL添加複雜的參數時,您應該總是使用'encodeURIComponent' 。或者給jQuery一個對象,它會自動完成編碼。 – Barmar 2014-08-28 20:50:43