[英]JavaScript / jQuery multidimensional array (object) to php
我想使用這種結構將數組發送到php:
Array[0]['name'] = ...
Array[0]['def'] = ...
Array[1]['name'] = ...
Array[1]['def'] = ...
等等....
為此,我有一個多維數組對象,如下所示:
var allShapes = new Array();
$('.shape_name').each(function(index){
allShapes[index] = new Array();
allShapes[index]['name']=$(this).val();
allShapes[index]['def']=$(this).closest("tr").find('*[id*=shape_def_]').val();
});
我通過發布請求將其發送到php:
$.post("../some.php", {
'shape_defs' : allShapes
}, function() {
console.log(allShapes);
}, "json").success(function() {
console.log("success");
});
如何在php中遍歷thos數組? 那里出事了......
$ _POST數組(在json_decode之后)具有以下內容:
[{"name":"Ta","def":"somestring"},{"name":"WSCall","def":"somestring"},{"name":"manual","def":"somestring"}]
如何迭代獲取鍵的值?
人們從PHP轉到JavaScript時,常見的誤解似乎是他們沒有意識到非整數鍵 不是 JavaScript 數組中的標准部分。 解釋器不會抱怨的原因是因為Array繼承了Object並且Object可以使用任何String作為鍵 。
如果您嘗試使用非標准鍵 序列化 JavaScript數組 ,則會完全丟失它們,因為它們無法以Array文字的形式編寫。
因此,應該將Object創建為allShapes
的項,而不是Arrays的項 。
var allShapes = []; // array literal
$('.shape_name').each(function (index) {
allShapes[index] = { // object literal
'name': $(this).val(),
'def': $(this).closest("tr").find('*[id*=shape_def_]').val()
};
});
最后,使用JSON.stringify
將結構轉換為JSON
var allShapesJSON = JSON.stringify(allShapes);
// send allShapesJSON..
使用JSON.stringify序列化數組,然后使用json_decode在PHP中對其進行解析應該可以解決您的問題。 如果不對它們進行編碼,復雜的數據結構通常無法很好地傳輸。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.