我有一些複選框以數組形式發送到服務器。通常,我有這些複選框的列表,並通過數組[]發送它。使用AJAX發送數組的最佳策略
例如,提交本:
<input type="checkbox" class="linkStyle" name="style[]" value="1" checked="checked" /> 1
<input type="checkbox" class="linkStyle" name="style[]" value="2" checked="checked" /> 2
<input type="checkbox" class="linkStyle" name="style[]" value="3" checked="checked" /> 3
我會向服務器發送這些參數:
style[]=1
style[]=2
style[]=3
服務器端
,使用PHP,我可以用$ _ POST [此陣'style'](它將這些參數自動放入數組中);
現在,用AJAX請求來做這個場景有點奇怪,因爲使用函數serialize(),例如我沒有得到相同的結果:事實上,它將單個變量放入整個字符串中,它不會將主題值作爲不同的參數發送。
參照示例之前,將發送出頭像:
style: style%5B%5D=Style1&style%5B%5D=Style2&style%5B%5D=Style3
,這是上PHP不舒服,因爲它不創建此值的數組。 所以我做了我自己的腳本來模擬這種行爲。如:
var styles="";
$('.linkStyle:checked').each(function(i,el){
styles=styles+'style[]='+$(this).val()+'&';
});
$.ajax ({
url: "list/browse_ajax.php",
type: "POST",
data: styles+'&id=browseUpdate&actualArtist='+browseArtist+'&actualEvent='+browseEvent+'&actualDate='+browseData,
success: function(data) {
$('#browseList').html(data);
},
error: function(data) {
$('#browseList').html("Error");
}
});
現在,想什麼我知道,就是:
- ,你怎麼看待這一戰略?
- 創建JSON對象並在客戶端/服務器端(內存,處理,計時,資源等)管理它會更好嗎?
- 爲什麼對於像這樣的東西,我應該創建一個對象,將其轉換爲json,在php上解碼它,管理結果,將其轉換爲json並重發?我只能管理一個字符串...
- 只有PHP或其他語言服務器端(如ASP?)自動創建具有相同名稱和[]的參數列表中的數組?
希望我的問題是不夠理解:)
真棒的答案!謝謝女士;) – kwichz 2011-05-03 22:16:16