[英]How to send two-dimensional array via ajax?
我已經有了將數據發送到服務器的方法:
var points = [];
var coords = polyline.geometry.getCoordinates();
for (var i = 0; i < coords.length; i++)
{
var x = (coords[i][0]).toFixed(4);
var y = (coords[i][1]).toFixed(4);
points[i] = [x,y];
}
$("form").on('submit',
function(e){
var data = $(this).serializeArray();
console.log(points);
data.push({name:'points[]',value:points});
$.ajax(
{
url: '/admin/index/add-route',
method: 'post',
data: data,
success: function(result) {
console.log('succcess');
}
}
);
console.log(data);
e.preventDefault();
return false;
}
);
在后端,我獲得具有這些值的一維數組:
(var dump of $_POST['points'])
array (size=1) 0 => string '48.9225,24.6948,48.9220,24.7090' (length=31)
jQuery將直接采用多維數組,而無需序列化。
var data = {foo:123,bar:456,行:[{column1:'hello',column2:'hola',column3:'bonjour',。 },{第1列:“再見”,第2列:“ hasta luego”,第3列:“ au revoir”,},],test1:{test2:{test3:“ baz”}}}; _Post PHP文件中的數據如下所示
Array([foo] => 123 [bar] => 456 [rows] => Array([0] => Array([column1] => hello [column2] => hola [column3] => bonjour)
[1] => Array
(
[column1] => goodbye
[column2] => hasta luego
[column3] => au revoir
)
)
[test1] => Array
(
[test2] => Array
(
[test3] => baz
)
)
)
定義數據多維數組后,您的Ajax可能會像
$ .ajax({type:'post',cache:false,url:'./ajax.php',data:data}); 如果您的帖子數組可能包含您不知道的字段,則可以使用以下命令輕松地在php文件中訪問帖子數組
$ data = file_get_contents('php:// input'); $ data = json_decode($ data,true);
您不需要使用.serializeArray();。
只需執行以下操作:
var data = {points: points};
在PHP方面:
$points = json_decode($_POST['points']);
要將數組發送到服務器,請使用JSON.stringify(object)
。 JSON.stringify(array)
將數組或對象轉換為字符串。 使用來自PHP的相同方法,再次json_decode(string)
創建php對象(或數組): json_decode(string)
http://php.net/manual/de/function.json-decode.php
另一種方法是json_encode(data)
並在JS端進行解析: JSON.parse(string)
看來您正在做些可疑的事情。 當您使用serializeArray()時,您將表單轉換為對象:
.serializeArray()-將一組表單元素編碼為名稱和值的數組。
還要用您的場景模型檢查此JSFiddle (出於明顯的原因刪除了ajax)。
無論如何,由於您已經在使用jquery和POST,請使用JSON對數組進行編碼。
var data = $(this).serializeArray();
data.push({name:'points',value:points});
var dataJson = JSON.stringify(data);
然后通過你的ajax
在php方面,您只需要解析json
$data = json_decode($json_string);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.