从SQL查询表结果为Textarea创建DOM

我得到了创建表的DOM对象,我想要一个新的函数/ DOM,从表结果创建一个Textarea,列名为AsText(Geometry)(即fieldName [i] =“AsText(Geometry))。这是SQLite3查询。

这是创建表html的DOM

function displayWKTqueryVCF(bcoResults, parameters){ //debug('displaying scores'); /* * the data array has multiple results from multiple BCF calls. * the first one has the data needed here. */ var aResult = bcoResults[0]; if(aResult.errorMessage != 'not an error'){ handleError('queryError',[aResult.errorMessage]); return; } var fieldNames = aResult.fieldNames; var records = aResult.data; var numFields = fieldNames.length; var numRecords = records.length; var container = document.getElementById('queryResults'); container.innerHTML = ''; var table = document.createElement('table'); container.appendChild(table); var headerRow = document.createElement('tr'); table.appendChild(headerRow); for(var i = 0; i < numFields; i++){ var header = document.createElement('th'); header.innerText = fieldNames[i]; headerRow.appendChild(header); } for(var i = 0; i < numRecords; i++){ var tableRow = document.createElement('tr'); table.appendChild(tableRow); for(var j = 0; j < numFields; j++){ var tableData = document.createElement('td'); tableRow.appendChild(tableData); tableData.innerText = records[i][j]; } } } 

输出:

 
name city AsText(Geometry))
Andres Street Nowhere City LINESTRING(7.120068 43.583917,7.120154 43.583652,7.120385 43.582716,7.12039 43.582568,7.120712 43.581511,7.120873 43.580718)

我想要一个新function,即Textarea,而不是表格。 其中一个问题是如何将2D数据存储到textrarea(即records [i] [j];)。 附加?

~~~~~~~~~~~~~~

 function displayAsTextGeometryVCF(bcoResults, parameters){ var aResult = bcoResults[0]; if(aResult.errorMessage != 'not an error'){ handleError('queryError',[aResult.errorMessage]); return; } var fieldNames = aResult.fieldNames; var records = aResult.data; var numFields = fieldNames.length; var numRecords = records.length; // var container = document.getElementById('queryAsTextGeometry'); var oTextarea = document.getElementById('wktResult'); oTextarea.innerHTML = ''; var g = 0; for(var i = 0; i < numFields; i++){ if fieldNames[i] = "AsText(Geometry)" then var g = i; } for(var g ){ for(var j = 0; j < numFields; j++){ document.getElementById('wktResults').value = records[g][j]; //tableData.innerText = records[g][j]; } } } 

想要的输出:

  

很难分辨出你遇到麻烦的部分。 我假设您无法使displayAsTextGeometryVCF()函数正常工作。 这是一个重写版本。 请试一试:

 function displayAsTextGeometryVCF(bcoResults) { var aResult = bcoResults[0]; if (aResult.errorMessage != 'not an error') { handleError('queryError', [aResult.errorMessage]); return; } var fieldNames = aResult.fieldNames, records = aResult.data, container = document.getElementById('queryResults'); container.innerHTML = ''; var theField = 0; for (var i = 0, ii = fieldNames.length; i < ii; i++) { if (fieldNames[i] == 'AsText(Geometry)') { theField = i; break; } } for (var i = 0, ii = records.length; i < ii; i++) { var t = document.createElement('textarea'); t.innerText = records[i][theField]; container.appendChild(t); } } 

对于这些数据:

 displayAsTextGeometryVCF([{ errorMessage: 'not an error', fieldNames: ['dummy', 'AsText(Geometry)'], data: [ ['one','yes'], ['no','yes'] ] }]); 

输出是:

 

那是你想要的吗?