textArea и CodeMirror: Как заполнить текстовую область и выделить? - PullRequest
1 голос
/ 24 августа 2010

У меня есть следующее: текстовая область и кнопка, я хотел бы заполнить ее предопределенным текстом и сделать подсветку синтаксиса с помощью CodeMirror:

$('#query1').button()
                .click(function() {
                    $('#queryText').val(<?php echo $queryArray[0];?>);
                }

Затем:

<form id="queryFrom" name="queryBox"
    action="processquery.php" method="get">
        <textarea id="queryText"
    name="queryText" cols="120" rows="30">
    </textarea>
    </form> 
<button id="query1">Query1</button>
<script type="text/javascript" src="js/code/js/codemirror.js"></script>

<script type="text/javascript">

var editor = CodeMirror.fromTextArea('queryText', {
      height: "150px",
      parserfile: "parsesql.js",
      path: "js/code/js/",
      stylesheet: "js/code/css/sqlcolors.css",
      textWrapping: true
    });
</script>

к сожалению, текст от кнопки не заполняет область, если CodeMirror включен.В чем проблема?

С уважением, Арман.

Ответы [ 2 ]

5 голосов
/ 06 мая 2011

я использовал для создания текстовой области CodeMirror:

CodeMirror.fromTextArea(document.getElementById('queryText'), {
  // your settings here
});

Обратите внимание на getElementById вместо того, чтобы просто давать имя / идентификатор поля.

Таким образом, я думаю, что вытакже следует размещать кавычки вокруг части PHP, поэтому:

val('<?php echo $data[0]; ?>')

Вы должны проверить свой исходный код, если в событии onclick загружен правильный текст.Если это не сработает, попробуйте выполнить код getJSON () при нажатии на файл PHP, который возвращает закодированный в json массив, содержащий данные как единственный ключ (data [0] .field или что-то подобное).

3 голосов
/ 17 июля 2012

Я нашел CodeMirror JQuery-плагин , который обещает решить проблемы с jquery, добавляя другие обработчики событий, но он не работает для меня: - /

Это будет новый способ его настройки:

$("textarea#codemirror").codemirror({
    lineNumbers : true,
    matchBrackets : true,
    tabMode: "indent"
});
...