$ getJSON未被识别为数组

时间:2009-09-13 16:00:57

标签: php jquery arrays json

我正在尝试使用jQuery的$ getJSON来发送'ids'数组。这是我的jQuery的样子:

var calendarIds = [];
    $("#jammer :selected").each(function(i, selected){
    calendarIds[i] = $(selected).val();
    });

    $.getJSON("test.php", {
      start: start.getTime() / 1000,
      end: end.getTime() / 1000,
      calendarid: calendarIds
                         },  
            function(a) {
      callback(a);
    });

而且,当我使用Firebug进行检查时,它会显示正在传递多个值:例如,

  http://mydomain.com/test.php?calendarid=3&calendarid=4

然而,当我尝试使用:

加入这个所谓的数组时
$comma_separated = join(",", $_GET['calendarid']);

echo $comma_separated;

我得到了:

  Warning: join() [function.join]: Invalid arguments passed

而且,如果我只是回显$ _GET ['calendarid'],我得到的,它只会回传最后一个id,例如:

 echo $_GET['calendarid'];   //echos "4"

关于我做错的任何想法?谢谢!

2 个答案:

答案 0 :(得分:3)

网址应该是

http://mydomain.com/test.php?calendarid[]=3&calendarid[]=4

为了让PHP将$ _GET ['calendarid']解析为PHP数组。

将其设置为正确的URL后,您就可以正确使用PHP中的join()。

答案 1 :(得分:3)

回复你对Mauris答案的评论:
在您要发送的参数对象中使用它:

"calendarid[]": calendarIds //

而不是:

 calendarid = calendarIds