var arr=[];
$('.element').each(function(i)
{
arr.push({"id":i,"value":$(this).attr('data-value')});
});
$.get('/json.php?arr='+arr,function(result)
{
alert(result);
});
<?php
$j = json_decode($_GET['arr'], true);
foreach($j as $k => $v)
{
echo $v['id'].':'.$v['value'].'<br />';
}
?>
但问题是网址看起来像/json.php?arr=[object Object],[object Object]
而不是/json.php?arr=[{"id":1,"value":"value 1"},{"id":2,"value":"value 2"}]
。我需要将对象转换为字符串吗?但我不想使用除JQuery之外的其他库。这可能吗? :/
答案 0 :(得分:6)
尝试JSON.stringify
$.get('/json.php?arr='+JSON.stringify(arr),function(result)
答案 1 :(得分:2)
如果你不依赖于通过JSON传递的想法,你可以在jQuery请求的数据部分提供它:
$.get( url, data, callback );
然后再检索它:
foreach( $_POST as $key => $value ){
//....
}