2012-10-04 52 views
2

有人可以幫助我將這些行轉換爲一個for循環嗎?Ajax:使用變量獲取HTML對象的值

var optie1 = ""; 
if($('#form #optie1_check').is(':checked')) { 
    optie1 = $('#form #optie1_naam').val(); 
} 
var optie2 = ""; 
if($('#form #optie2_check').is(':checked')) { 
    optie2 = $('#form #optie2_naam').val(); 
} 

我似乎無法在Google上找到我的答案,不知道如何搜索它。 我想是這樣的:

for loop (i) { 
    var str = "optie" + (i+1) + "_check"; 
    var str2 = "optie" + (i+1) + "_naam"; 
    if($('#form #str').is(':checked')) { 
     opties = $('#form #str2').val(); 
    } 
} 

而且opties是一個數組,我將會把所有的值,所以我可以在以後將它傳遞:

$.ajax({ 
    type: "POST", 
    url: "voegOptiesToe.php", 
    data: "opties="+opties, 
    ... 
} 
+0

只是這樣你纔可以將它傳遞給處理腳本?如果是這樣,所有你需要做的就是在你的ajax請求中的數據:('#form_id')。serialize()。如果它爲空或設置,它將被傳遞,你可以在你的服務器端腳本中選擇它。您可以看到使用Firebug或Chrome開發人員工具傳遞的值。 – martincarlin87

回答

0

可以簡單地使用.serialize()編碼的一組表格的元素作爲字符串提交

http://api.jquery.com/serialize/

例如,

$.ajax({ 
    type: "POST", 
    url: "voegOptiesToe.php", 
    data: $('form').serialize(), 
    ... 
} 
+0

我一定會檢查了這一點,不知道這是可能的。我是新來的Ajax/JavaScript的。謝謝。 – Kevin

0
var opties = new Array(); 
for (i=1; i<=2; i++) { 
    var str = "optie" + i + "_check"; 
    var str2 = "optie" + i + "_naam"; 

    if($('#form #'+str).is(':checked')) { 
     opties.push($('#form #'+str2).val()); 
    } 
} 

JSFiddle Example

+0

快速回答!謝謝,效果很好。 – Kevin

0
var optie,i=1;  
$('#form #optie'+i+'_check').is(':checked').each(function(){ 
optie+= $('#form #optie'+i+'_naam').val(); 
i++; 
}); 
0

如果保持同名字的複選框,默認情況下你可以檢索值作爲服務器端陣列。

或者試試這個:

values = [] 
$("#form input[type='checkbox']") 
.filter(function(i,el){ 
    return $(el).is(':checked'); 
}) 
.each(function(i, el){ 
    arr.push($(el).val()); 
}) 

而且你可以發送values陣列阿賈克斯後的數據。