从SQL查询表结果为Textarea创建DOM [英] Creating a DOM for Textarea from SQL queries table result

查看:48
本文介绍了从SQL查询表结果为Textarea创建DOM的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了一个创建表的DOM对象,我想要一个新函数/DOM,该函数从表结果中创建一个具有列名AsText(Geometry)的Textarea(即fieldName [i] ="AsText(Geometry)). SQLite3查询.

I got the DOM object that creates table and I want a new function /DOM that create a Textarea from table result with a column name AsText(Geometry) (i.e. fieldName[i] = "AsText(Geometry)). This is SQLite3 query.

这是创建表html的DOM

Here is the DOM that creates table html

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];).追加?

I wanted a new function, that is Textarea, not table. One of the problem is how to store 2D data into textrarea (i.e. records[i][j];). Append?

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

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

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.120154 43.583652,7.120385 
      43.582716,7.12039 43.582568,7.120712 43.581511,7.120873 43.580718)</textrea>

如何将以上文本添加到上面的代码中.

How can this addtext corporate to above code.

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()函数正常工作时遇到了麻烦.这是重写的版本.请尝试:

It is hard to tell what part of this you are having trouble with. I'm supposing that you are having trouble getting your displayAsTextGeometryVCF() function to work. Here is a rewritten version. Please try it:

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>

那是你想要的吗?

这篇关于从SQL查询表结果为Textarea创建DOM的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆