Создание DOM для Textarea из результата таблицы SQL-запросов - PullRequest
0 голосов
/ 18 июня 2011

Я получил объект DOM, который создает таблицу, и я хочу новую функцию / DOM, которая создает Textarea из результата таблицы с именем столбца AsText (Geometry) (т.е. fieldName [i] = "AsText (Geometry)). ЭтоЗапрос SQLite3.

Вот DOM, который создает таблицу 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 (т.е. записи [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>

Как этот 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>

1 Ответ

1 голос
/ 18 июня 2011

Трудно сказать, с какой частью этого у вас проблемы. Я полагаю, у вас возникли проблемы с работой функции 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>

Это то, что вы хотели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...