2016-03-26 27 views
0

Kullanıcı tanımlı anahtar ve değer ile dinamik bir dizi oluşturmak istedim. Elimden geleni yaptım ama bir çözüm bulamadım.Kullanıcı tanımlı anahtar ve değerler diziye nasıl eklenir

Bu ben denedim budur:

function demo1(form_no) { 
    var post_data_array = []; 
    var post_data_array2 = []; 

    var array1 = ['abc', 'xyz']; 

    $.each(array1, function(key, value) { 

    var temp_value = $("#" + value + "_" + form_no).val(); 
    var temp_key = value + "_" + form_no; 

    post_data_array.push({ 
     key2: temp_key, 
     value2: temp_value 
    }); 

    }); 

    $.each(post_data_array, function(index, value) { 
    post_data_array2[value.key2] = value.value2; 
    }); 

    .ajax({ 

    type: "post", 
    data: { 
     postdata121: post_data_array2 
    }, 
    url: base_url + "/temp_function/" + form_no, 
    success: function(result) { 
     alert(result); 
    } 

    }); 

} 

Ama post_data_array2 uyarmak eğer post_data_array2 değerler atayarak sonra boş bir dizi alıyorum.

Ve hatta başka bir sayfada veri göndermek için ajax işlevinde post_data_array2 göndermeye çalışıyorum, ben postdata boş alıyorum.

Neler olduğunu bilmiyorum.

+0

Sorularınızı gözden geçirebilir, anlaması zor olan bazı yazım hataları var mı? Teşekkür ederiz – rsabir

+0

JavaScript kesinlikle ilişkisel dizileri yoktur, bu nedenle özel dizi anahtarlara sahip olamazsınız. 'Alert (post_data_array2)' işlevini kullandığınızda, dizinin içinde hiçbir öğe olmadığını (ki bu, öğeleri eklemekten ziyade özelliklerini ayarlamış olduğunuzdan) gösterir. – Chris

cevap

0

Değerleri array1 anahtarında kullanmak istediğinizi söylüyorsunuz gibi görünüyor. Bunu yapmak için [] dizisinin yerine {} nesnesini kullanın. Şimdi

function demo1(form_no) { 
 
    var array1 = ['abc', 'xyz']; 
 
    var data = {}; 
 

 
    $.each(array1, function(key, value) { 
 
    var temp_key = value + "_" + form_no; 
 
    data[temp_key] = $("#" + temp_key).val(); 
 
    }); 
 
    
 
    alert(JSON.stringify(data)); 
 

 
    $.ajax({ 
 

 
    type: "post", 
 
    data: { 
 
     postdata121: data 
 
    }, 
 
    url: base_url + "/temp_function/" + form_no, 
 
    success: function(result) { 
 
     alert(result); 
 
    } 
 
    }); 
 
} 
 

 
demo1(123);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<input id=abc_123 value=abcValue> 
 
<input id=xyz_123 value=xyzValue>

biz array1 üzerinde döngü, biz data nesne yeni bir anahtar/değer çiftini oluşturmak için her üye kullanır:

Bu

çok az kod ile gerçekleştirilebilir $.ajax aracılığıyla gönderilir.

+0

Teşekkürler Bu benim için çalışıyor. –

İlgili konular