Rumah > Soal Jawab > teks badan
Saya ada soalan tentang aplikasi yang saya buat, saya menggunakan pangkalan data Oracle, dan saya mendapat maklumat daripada pangkalan data dan membentangkannya pada skrin melalui jadual, tetapi saya ingin mencuba memproses data secara individu, seperti mencipta perenggan dan Memaparkan nilai.
Saya hanya boleh membentangkan data melalui jadual, adakah cara lain? Jika ada yang boleh membantu saya, terima kasih banyak-banyak.
Saya menerima semua petua untuk menambah baik kod.
Halaman Index.html saya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
|
Ini adalah Index.js saya tempat saya membuat pilihan dan menghantar data
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
P粉7060387412024-04-05 14:02:39
Memandangkan saya tidak dapat menghasilkan semula senario dengan tepat, saya akan menumpukan pada bahagian pelanggan dan hanya mengambil mudah bahawa titik akhir hujung belakang anda akan mengembalikan tatasusunan dengan betul, contohnya: data[iRow][iColumn]
Andaian sebegitu datang dari baris seperti ini cell1.innerHTML = data[i][0];
Saya tidak pasti sama ada data itu hanyalah tatasusunan atau jika terdapat beberapa cara untuk menangani nilai lajur mengikut nama lajur. Bagaimanapun, kami akan kekal dengan paradigma tatasusunan biasa di sini kerana ia nampaknya berfungsi mengikut kata-kata anda sendiri.
Di sini kami mentakrifkan tatasusunan data
dengan 2 baris dan 10 lajur setiap satu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Saya juga boleh mengatakan susunan lajur yang diambil daripada pangkalan data sejak menunjukkan pertanyaan SQL, ini ialah senarai tertib:
DATREA、HORREA、CODORI、NUMORP、CODPRO、CODDER、QTDRE1、QTDRFG、CODLOT、OPERADOR
Kami mentakrifkannya sebagai tatasusunan rentetan dalam js seperti berikut:
1 2 |
|
Tukar baris data
kepada tatasusunan objek yang mempunyai sifat baris dan lajur yang dinamakan selepas senarai lajur yang ditunjukkan sebelum ini:
1 2 3 4 5 6 7 8 9 |
|
Untuk baris pertama data (data[0]
) objek berikut akan dikembalikan:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Bergantung pada matlamat khusus anda, anda mempunyai cara tanpa had untuk melakukannya. Anda sebenarnya tidak perlu menukar tatasusunan kepada objek di tempat pertama, tetapi ia menjadikannya lebih mudah untuk mengakses lajurnya mengikut nama daripada menggunakan nombor indeks.
Bagaimanapun, jika sebagai contoh anda perlu memaparkan setiap baris sebagai kandungan satu perenggan, dengan gabungan semua data lajurnya sebagai kandungan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Berikut adalah demonstrasi langsung tentang apa yang telah diperkatakan setakat ini:
//the array you are supposed to receive from your ajax call
const data = [
//first row of cells
[
'rowX_cell(01)',
'rowX_cell(02)',
'rowX_cell(03)',
'rowX_cell(04)',
'rowX_cell(05)',
'rowX_cell(06)',
'rowX_cell(07)',
'rowX_cell(08)',
'rowX_cell(09)',
'rowX_cell(10)',
],
//second row of cells
[
'rowY_cell(01)',
'rowY_cell(02)',
'rowY_cell(03)',
'rowY_cell(04)',
'rowY_cell(05)',
'rowY_cell(06)',
'rowY_cell(07)',
'rowY_cell(08)',
'rowY_cell(09)',
'rowY_cell(10)',
],
]
//ordered list of columns in the same order as the cols in data are supposed to be
const columnNames = ['DATREA','HORREA','CODORI','NUMORP','CODPRO','CODDER','QTDRE1','QTDRFG','CODLOT','OPERADOR'];
//transforming the original array of rows as array of objects where each one as col data as properties
const rowObjects = data.map( row => getRowObject(row) );
console.log(rowObjects);
//appending the rowObjects as p paragraph to #output_rows
const target = document.getElementById('output_rows');
appendRowsAsParagraphsInTarget(target, rowObjects);
function appendRowsAsParagraphsInTarget(target, rowObjects){
//you can loop through all the rows and print them on screen
rowObjects.forEach( row => {
//here we are converting the row object back to a list of values
values = columnNames.map( columnName => row[columnName] );
//here to a single string where values are separated by ', ' and wrapped in []
values = values.map( value => `[${value}]`);
values = values.join(', ');
//append the newly created p in target
const p = document.createElement('p');
p.textContent = values;
target.append(p);
});
}
function getRowObject(row){
const rowObject = {};
//for each col in columnNames
columnNames.forEach((col, i)=>{
//set the prop of rowObject named as col = the value at the i position in row
rowObject[col] = row[i];
});
return rowObject;
}
.label{
font-weight: bold;
}
#output_rows{
}
#output_rows > p{
border: solid 1px lightgray;
margin-bottom: 1em;
}
Showing all the table rows as p elements