に適切な値を取得できません。クエリに問題はないようですが、forループは上記の適切な値を取得しません。どのように私はは私がデータベースを照会し、動的テーブルを埋めるために、結果を使用し以下のコードで少し問題を抱えているnodejs
//grab result from doneon table and show on report
connection.query('SELECT * FROM doneon WHERE SampID LIKE ?', id, (err, rows, fields) => {
if(err){
return console.log('An error ocurred with the query', err)
}
var tabldiv = document.getElementById('tabldivid')
var table = document.createElement('TABLE')
var tableBody = document.createElement('TBODY')
// table.style.border = '3px solid black'
table.style.width = '100%'
table.id = 'tablid'
table.appendChild(tableBody);
var heading = new Array();
heading[0] = "Test"
heading[1] = "Result"
heading[2] = "Normal values"
for(i=0; i <rows.length; i += 1) {
var resu = new Array()
resu[i] = rows[i]
console.log(rows[i]);
}
//TABLE COLUMNS
var tr = document.createElement('TR');
tableBody.appendChild(tr);
for (i = 0; i < heading.length; i++) {
var th = document.createElement('TH')
th.width = '75';
th.appendChild(document.createTextNode(heading[i]));
tr.appendChild(th);
}
//TABLE ROWS
for (i = 0; i < resu.length; i++) {
var tr = document.createElement('TR');
for (j = 0; j < resu[i].length; j++) {
var td = document.createElement('TD')
td.appendChild(document.createTextNode(resu[i][j]));
tr.appendChild(td)
}
tableBody.appendChild(tr);
}
tabldiv.appendChild(table)
})
'console.log(rows [i]);'? – Ben
最初のforループの各繰り返しで変数 'resu'を' new Array'として定義しています。この新しい配列のi番目の要素には、ほとんどの場合未定義の値を含む配列を生成する行配列の値が割り当てられます。 https://javascript.info/arrayは、最小、完全、および検証可能なサンプル(https://stackoverflow.com/help/mcve) – John
Hello Benのコンソールを提供するポイントに役立ちます。log(rows [i])は私にrowdatapacketを与えます。なぜそれがUncaught TypeErrorと言うのか分かりません:未定義のプロパティ 'length'を読み取ることができません。私がconsole.log(rows.length)を実行すると、それは私に値を与えます – robikube