如何獲取所有表單值並使用給定的變量或數組序列化多個select?輸出參數必須爲 ;jquery serialize multiple select
id=1&name_1=John&name_2=Juan&name_3=Isabel&name_4=Doe
其中名稱是多個選擇
如何獲取所有表單值並使用給定的變量或數組序列化多個select?輸出參數必須爲 ;jquery serialize multiple select
id=1&name_1=John&name_2=Juan&name_3=Isabel&name_4=Doe
其中名稱是多個選擇
作爲this answer演示,jQuery將經由$(form).serialize()
序列化時所使用的相同的「名稱」的值作爲對於每個選擇的關鍵在於:
id=1&name=John&name=Juan&name=Isabel&name=Doe
這是服務器瞭解如何處理它。有可能你的服務器會處理得很好。
如果你絕對需要你提到的格式,你應該能夠破解它使用起來像這樣(未經):
var elementArray = $(form).serializeArray();
var modifiedArray = [];
var counts = {};
var multipleValues = {};
$.each(elementArray, function(index, value) {
if (counts[value.name]){ counts[value.name] += 1; } else { counts[value.name] = 1; }
});
$.each(elementArray, function(index, value) {
if (multipleValues[value.name] || counts[value.name] > 1){
if (!multipleValues[value.name]) { multipleValues[value.name] = 0; } else { multipleValues[value.name] += 1; }
modifiedArray.push({name: value.name + "_" + multipleValues[value.name], value: value.value});
} else {
modifiedArray.push({name: value.name, value: value.value});
}
});
var result = $.param(modifiedArray);
PHP不會具有相同名稱的處理多個請求的值。您可以將它們作爲數組發佈。要做到這一點,只需將[]添加到html元素名稱標籤的末尾即可。
user[]=John&user[]=Bill&user[]=Adam
在PHP中,它看起來像:
Array ( [user] => Array ( [0] => John [1] => Bill [2] => Adam ) )
對於所有使用jquery serialize()函數,使用ajax方法'post'和'select'具有'multiple'屬性的人來說,這解決了這個問題。 –
希望它不會崩潰,並處理我的其他多發性所有參數的選擇:) – mrrsb
我怎樣才能從0開始的數組? – mrrsb
@mrrsb:JavaScript中的數組已經基於0,請多解釋一下您的問題。 – PinnyM