如何将JSON数组传递到URL?

时间:2012-06-16 22:50:31

标签: php jquery arrays json

的JavaScript / JQuery的

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

<?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之外的其他库。这可能吗? :/

2 个答案:

答案 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 ){
   //....
}