2010-08-24 3 views
1

У меня есть folloowing: текстовое поле и кнопку, я хотел бы, чтобы заполнить его заданным текстом и тем временем сделать подсветку синтаксиса с CodeMirror:textArea и 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. В чем проблема?

вид сэр Arman.

ответ

4

что я использую, чтобы создать текстовое поле CodeMirror является:

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

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

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

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

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

+0

спасибо, цитаты решили проблему. – Arman

+3

Вы все еще можете использовать jQuery ... '' 'CodeMirror.fromTextArea ($ ('# myTextAreaId') [0], {/ ** settings ** /});' '' Обратите внимание на '[0]' после селектор. – lucifurious

0

CodeMirror принимает как узел DOM, так и строку с идентификатором элемента.

У меня такая же проблема: как только я настрою CodeMirror на своем текстовом поле, я могу захватить (с jquery или что-то еще) больше событий.

3

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

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

$("textarea#codemirror").codemirror({ 
    lineNumbers : true, 
    matchBrackets : true, 
    tabMode: "indent" 
}); 
Смежные вопросы