2009-09-13 65 views
1

我试图用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" 

什么我做错了任何想法?谢谢!

回答

3

的URL应该是

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

为了让PHP解析$ _GET [ 'calendarid']作为一个PHP数组。

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

+0

感谢您的答复:那么,使用$ .getJSON与jQuery,我怎么能告诉它发送一个文件?我试着这样做: $ .getJSON( “test.php的”,{ 开始:start.getTime()/ 1000, 结束:end.getTime()/ 1000, calendarid []:calendarIds \t \t \t \t \t \t}, 然而,calendarid后具有括号([])导致JavaScript错误上任何想法 – Dodinas 2009-09-13 16:09:21

3

在回答您的评论对Mauris的回答:
使用这种在您的参数对象,你要发送:中

"calendarid[]": calendarIds // 

代替:

calendarid = calendarIds 
+1

+1的帮助谢谢不知道我所需要的报价: - 。?。。/ – Dodinas 2009-09-13 16:15:58

+0

的引号是为了放置“[]”而需要的,通常情况下,如果你没有放置引号,用Javascript就没有问题,但在这种情况下,你需要“[]”,因此需要引号。 – mauris 2009-09-13 23:49:50