我的JSON数组有问题。这是我的Ajax代码(我将文件excel上传并返回JSON。然后将Json转换为字符串并保存到myDb):
function exportExcelToTable() {
$('#upload-excel-convert').change(function (e) {
let file = $(this).prop('files')[0];
let formData = new FormData();
formData.append("file",file);
$("#js-render-btn-see-excel").html('');
$('#js-table-excel tbody').html('');
$.ajax({
method:'POST',
url: '/order/excel/read-file',
data: formData,
contentType: false,
processData: false,
dataType:'json',
success(data) {
let $data = $('input[name="order[sizeFile]"]');
for (let i = 1; i < data.length; i++) {
$data.val(JSON.stringify(data[i]));
console.log(data[i]);
}
}
});
})
}
这是要返回的杰森console.log(data[i])
。
[["XS ", "Nam", null, null, null, 20],
["S", null, 13, null, null, 35],
["M", null, 12, null, null, 12]
]
我的输入值只返回最后一个数组
<input type="hidden" name="order[sizeFile]" value="["M";,null,12,null,null,12]">
我想要输入值,例如:
<input type="hidden" name="order[sizeFile]" value="[["XS ", "Nam", null, null, null, 20],["S", null, 13, null, null, 35],["M", null, 12, null, null, 12]]">
该如何解决?谢谢。
P/s
对不起,我的英语。
UPDATE
我正在更新代码。
function exportExcelToTable() {
$('#upload-excel-convert').change(function (e) {
let file = $(this).prop('files')[0];
let formData = new FormData();
formData.append("file",file);
$("#js-render-btn-see-excel").html('');
$('#js-table-excel tbody').html('');
$.ajax({
method:'POST',
url: '/order/excel/read-file',
data: formData,
contentType: false,
processData: false,
dataType:'json',
success(data) {
let $data = $('input[name="order[sizeFile]"]');
let list;
for (let i = 1; i < data.length; i++) {
list += JSON.stringify(data[i]);
$data.val(list);
console.log(data[i]);
}
}
});
})
}
是的,但是我的输入显示undefined
的值。
<input type="hidden" name="order[sizeFile]" value="undefined[["XS ", "Nam", null, null, null, 20],["S", null, 13, null, null, 35],["M", null, 12, null, null, 12]]">
答案 0 :(得分:0)
将控制台的输出存储在var中,然后在成功回调中,您可以使用该数组并替换输入中的值
您的JS应该是
success(data) {
let $data = $('input[name="order[sizeFile]"]');
var excelData = [];
for (let i = 1; i < data.length; i++) {
$data.val(JSON.stringify(data[i]));
console.log(data[i]);
excelData.push(data[i])
}
$("#showValues").val(excelData);
}
并在输入字段中输入一个ID,以便以后可以替换该值
<input type="hidden" id="showValues" name="order[sizeFile]" value="">