2009-09-13 64 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