2013-04-23 65 views
2

在我的HTML頁面中的一個,有幾個輸入的字段名稱相同的屬性,因爲我想送他們作爲一個陣列到另一個PHP的後端交易。jQuery的崗位陣列數據形成

假設輸入場象下面這樣:

<input type="text" name="language_names[]" value="english"> 
<input type="text" name="language_names[]" value="french"> 
<input type="text" name="language_names[]" value="spanish"> 

現在我想使用jQuery發送此陣?我現在用的是。員額()方法對於這一點,我知道一個值就可以發送作爲{鍵:值1,鍵2:值2 ...},但陣列我怎麼能不喜歡這樣?我想它應該接近

{'language_names[]' : $('#input[name="language_names[]"]').val()} 

但它不起作用(我檢查請求正文)。任何人都可以幫忙jQuery的的

+0

看一看jQuery的序列化()http://api.jquery.com/serialize/ – 2013-04-23 12:28:19

回答

0

由於需要與特定輸入元素的值的簡單數組,你可以使用例如:

function getLanguageValues() { 
    var language_names = []; 
    $.each($("input[name=language_names\\[\\]]"), function (indexInArray, valueOfElement) { 
     language_names.push($(valueOfElement).val()); 
    }); 
    return language_names; 
} 

這是jsfiddle

+0

正是我想要的,非常感謝! – 2013-04-23 20:46:33

+0

不客氣:) – excentris 2013-04-24 06:25:28

5

使用序列化功能這樣

// This returns a json representation of your form values 
$('#formid').serialize(); 
+0

如果我只是想送這個數組,而不是整個表格,我怎麼能能這樣? – 2013-04-23 12:54:00

0

或者你也可以這樣做:

{'language_names[]' : $('input[name=language_names\\[\\]]').serialize()} 
+0

我在期待serialize方法將返回**值**屬性中的值數組。在我的情況下,數組應該包含「英語」,「法語」,「西班牙語」等。但是,對於您提出的方法,它是空的。 – 2013-04-23 12:44:15