作者sk1765 (鼎玉鉉)
看板Ajax
標題Re: [問題] JQuery 的 get功能傳值
時間Mon Jan 3 22:53:42 2011
※ 引述《averywu (看文不要只會用橫的看)》之銘言:
: JQuery 的 get() 實在好用,所以用的還蠻多的。
: 但是今天遇到一個問題。
: 如何傳陣列?
: $.get("123.php",{
: var1 : 1;
: var2 : 2;
: },function(data){
: mydiv(data)
: })
: 上面是沒問題的,但如果把var1跟var2改成 var[1] 跟 var[2] 就死掉了。
: 我表單會有不確定多少個CHECKBOX,原想寫成
: var target = $(':checkbox');
: $.get("123.php",{
: for(var i=0;i<target.length;i++){
: myvar[i] = true;
: }
: },function(data){
: mydiv(data)
: })
: 但會語法錯誤,把迴圈放外面,然後把值弄成字串加在一起送也會錯誤。
: 又不太想把值直接接在URL後面(沒什麼原因,單純覺得破壞美感XD)
: 該怎麼搞這問題呢?
{
var1 : 1;
var2 : 2;
}
是一個物件實字(Object literals)
而且中間應該是逗號吧 最後一個後面不加逗號 應該是
{
var1 : 1,
var2 : 2
}
如果寫成
myvar = {
"var1" : 1,
"var2" : 2
}
可以直接用關聯式陣列(Associative arrays) 操作
myvar["var1"] = 1;
myvar["var2"] = 2;
這代表的是一個myvar物件
內容包括
myvar.var1=1;
myvar.var2=2;
{} 不是代表執行區塊 所以
{
for(var i=0;i<target.length;i++){
myvar[i] = true;
}
一定會錯 因為要傳入的是一個物件
以下請參考 沒玩過jQuery 若失敗請見諒
---------------------------------------------
var myvar = {}; //先建立一個空的物件實字
var target = $(':checkbox');
for(var i=0;i<target.length;i++){
myvar['var' + i] = true; //替物件實字塞值
}
//傳入物件實字
$.get("123.php",myvar,function(data){
mydiv(data)
})
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.226.117
1F:→ TonyQ:你這樣寫應該沒問題 01/04 09:12
2F:→ averywu:好深奧@@回去試試,感謝!偷偷請教,物件實字的意思是? 01/04 20:19
3F:→ s25g5d4:{} 與 [] 01/04 20:26