我有一個將數據發送到服務器的JS函數。在函數中,我用來自輸入字段的數據填充數組(row_data)。該數組不是空的,我可以得到值後,我設置它們。但是,如果我把數組放到ajax調用中,數組是完全空的。我不瞭解這種行爲。JavaScript數組在Ajax調用時爲空
function send_data() {
var d = new Date();
var row_data = [];
timestamp = d.getTime();
for(i = 1; i <= rows; i++) {
row_data[i] = [];
row_data[i]['bold'] = jQuery('#bold' + i + '_val').val();
row_data[i]['italic'] = jQuery('#italic' + i + '_val').val();
row_data[i]['underline'] = jQuery('#underline' + i + '_val').val();
row_data[i]['align'] = jQuery('#align' + i + '_val').val();
row_data[i]['capitalize'] = jQuery('#capitalize' + i + '_val').val();
row_data[i]['curved'] = jQuery('#curved' + i + '_val').val();
row_data[i]['font'] = jQuery('#font' + i + '_val').val();
row_data[i]['font_size'] = jQuery('#fontsize' + i + '_val').val();
row_data[i]['abstand'] = jQuery('#abstand' + i + '_val').val();
row_data[i]['text'] = jQuery('#zeile' + i).val();
if (row_data.length <1) alert("array is empty");
}
if (row_data.length <1) alert("array is empty");
$.ajax({
method: 'POST',
url: server_script_url,
cache: false,
dataType: 'xml',
data: { 'id': session_id,
'rows' : rows,
'row_data' : row_data
}
})
.done(function(xml) {
var image = $(xml).find('file').first().text();
jQuery('#preview_image').attr('src', image + '?t=' + timestamp);
})
.fail(function() {
alert('Leider gab es bei der Datenübermittlung einen unbekannten Fehler.');
});
}
此外,他還需要將for(i = 1; i <= rows; i ++)'更改爲'for(for i = 0; i
@ user1354678:不一定,如果他想要像'#bold_1_val'(而不是'#bold_0_val')這樣的選擇器。我假設HTML中的id是從1開始的,而不是從0開始。 –
完美的,這是有效的!我的主要失敗是定義一個數組而不是一個對象?感謝您的詳細解答。 – Smedi