问题描述
||
我得到了创建表的DOM对象,我想要一个新函数/ DOM,该函数从表结果中创建一个具有列名AsText(Geometry)的Textarea(即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];
}
}
}
输出:
<table>
<tr>
<th>name</th>
<th>city</th>
<th>AsText(Geometry))</th>
</tr>
<tr>
<td>Andres Street</td>
<td>Nowhere City</td>
<td>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)</td>
</tr>
</table>
我想要一个新功能,即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];
}
}
}
所需的期望输出:
<textarea>LINESTRING(7.120068 43.583917,7.120385
43.582716,7.120873 43.580718)</textrea>
这个addtext如何与上面的代码结合。
function addtxt(input) {
var obj=document.getElementById(input)
var txt=document.createTextNode(\"blah blah\")
obj.appendChild(txt)
文本区域和按钮:
<a href=\"#wktInput\" data-inline=\"true\" data-role=\"button\">WKT Result</a>
<textarea cols=\"160\" rows=\"10\" style=\"color: green; background-color: black\" name=\"wktResult\" >WKT Results</textarea>
解决方法
很难说出这是哪一部分有问题。我以为您无法正常使用
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\']
]
}]);
输出为:
<div id=\"queryResults\"><textarea>yes</textarea><textarea>yes</textarea></div>
那是你想要的吗?