2010-09-02 13 views
0

我已經動態加載複選框的值使用php,n m在該頁面中使用AJAX調用處理頁面。如何在javascript中傳遞動態數組?

<form name="form1" id="form1" action="javascript:wait1();getPass('go.php?**place**='+ document.form1.place.value);" method="post" enctype="multipart/form-data"> 


<input name="place[]" type="checkbox" value="<?=$ro['article_title']?>" /><?=$ro['article_title']?> 

由於複選框由數組組成,所以我沒有得到值。

Plz help ..

在此先感謝。

+2

我沒有得到問題...複選框的值是一個數組? – Zoidberg 2010-09-02 12:01:49

+0

複選框根據數據庫值生成,位於while循環內。所以,我已經將它的名字定義爲place []。 現在,當我將[]放置在javasript中時...它不起作用。 – 2010-09-02 12:15:45

回答

0

使用「數組樣式」訪問表單的屬性,如form1['place[]']。由於這是一個複選框,因此可以選擇多個值,並返回節點列表form1['place[]']

var places = document.form1['place[]']; 

var checked_places = []; 
for (var i = 0, l = places.length; i < l; i++) { 
    if (places[i].checked) { 
     checked_places.push('place[]=' + places[i].value); 
    } 
} 
var url = "go.php?" + checked_places.join('&'); 

看到一個活生生的例子:http://jsfiddle.net/jrYBz/1/

但爲什麼不喜歡它,你可以通過列表遍歷構建URL?因爲無論如何您都在發佈表單,爲什麼不通過服務器端的$_POST讀取值呢?

0

引述the spec

IDNAME令牌必須以字母開頭([A-ZA-Z]),並且可以是 後跟任意數量的字母, 數字( (「_」),連字符(「 - 」), 下劃線(「_」),冒號(「:」)和 句點(「。」)。

因此[]name屬性中無效。

+1

但是,當您使用PHP作爲服務器端語言來指示應該創建值的數組時,通常會使用它們:http://php.net/manual/en/language.variables.external.php – 2010-09-02 12:22:39