我有这种方法将数据发送到服务器:
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)
答案 0 :(得分:1)
Jquery将直接采用多维数组,无需序列化。
var data = { foo:123, 酒吧:456, 行:[ { column1:'你好', 第2栏:'hola', 第3栏:'bonjour',。 }, { 第1栏:'再见', 第2栏:'hasta luego', 第3栏:'au revoir', }, ] 测试1:{ test2:{ test3:'baz' } } }; PHP文件中的_Post数据看起来像这样
阵 ( [foo] =&gt; 123 [bar] =&gt; 456 [rows] =&gt;排列 ( [0] =&gt;排列 ( [column1] =&gt;你好 [column2] =&gt;你好 [column3] =&gt;你好 )
[1] => Array
(
[column1] => goodbye
[column2] => hasta luego
[column3] => au revoir
)
)
[test1] => Array
(
[test2] => Array
(
[test3] => baz
)
)
)
一旦定义了数据多维数组,您的Ajax就可以像
一样简单$。AJAX({ 类型:'post', cache:false, url:'。/ ajax.php', 数据:数据 }); 如果您的帖子数组可能包含您不了解的字段,则可以使用
轻松访问php文件中的Post数组。$ data = file_get_contents('php:// input'); $ data = json_decode($ data,true);
答案 1 :(得分:0)
您不需要使用.serializeArray();
请执行以下操作:
var data = {points: points};
并在PHP方面:
$points = json_decode($_POST['points']);
答案 2 :(得分:0)
要将数组发送到服务器,请使用JSON.stringify(object)
,resp。 JSON.stringify(array)
将数组或对象转换为字符串。使用PHP中的相同方法再次从此字符串创建php对象(或数组):json_decode(string)
http://php.net/manual/de/function.json-decode.php
反过来是json_encode(data)
并在JS方面解析它:JSON.parse(string)
答案 3 :(得分:0)
看起来你正在做一些可疑的事情。使用serializeArray()时,将表单转换为对象:
.serializeArray() - 将一组表单元素编码为名称数组 和价值观。
<强> .serializeArray() docs 强>
同时使用您的方案的模型检查此 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);