3

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 />';
}

?>

问题

但问题是 URL 看起来像/json.php?arr=[object Object],[object Object]而不是/json.php?arr=[{"id":1,"value":"value 1"},{"id":2,"value":"value 2"}]. 我需要将对象转换为字符串吗?但我不想使用 JQuery 以外的其他库。这可能吗?:/

4

2 回答 2

6

试试 JSON.stringify

$.get('/json.php?arr='+JSON.stringify(arr),function(result)
于 2012-06-16T22:56:00.523 回答
2

如果您不喜欢通过 JSON 传递 if 的想法,您可以在 jQuery 请求的数据部分提供它:

$.get( url, data, callback );

然后稍后检索它:

foreach( $_POST as $key => $value ){
   //....
}
于 2012-06-16T22:54:39.887 回答