2

誰かがこれらの行を1つのforループに変換するのを手伝ってもらえますか?

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();
}

私はグーグルで私の答えを見つけることができないようです、それを検索する方法を本当に知りません。私はこのようなものが欲しい:

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,
    ...
}
4

4 に答える 4

0

両方のチェックボックスで同じ名前を保持している場合、デフォルトでは、サーバー側で配列として値を取得できます。

またはこれを試してください:

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

そして、values配列をajax投稿データに送信できます。

于 2012-10-04T11:09:34.170 に答える
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の例

于 2012-10-04T10:21:31.507 に答える
0
var optie,i=1;    
$('#form #optie'+i+'_check').is(':checked').each(function(){
optie+= $('#form #optie'+i+'_naam').val(); 
i++;
});
于 2012-10-04T10:24:09.823 に答える
0

.serialize()フォーム要素のセットを送信用の文字列としてエンコードするものを簡単に使用できます

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

例えば、

$.ajax({
    type: "POST",
    url: "voegOptiesToe.php",
    data: $('form').serialize(),
    ...
}
于 2012-10-04T10:27:20.010 に答える