3

我有以下内容: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,按钮中的文本不会填满该区域。问题是什么?

亲切的问候阿尔曼。

4

2 回答 2

9

我用来创建 CodeMirror 文本区域的是:

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

注意 getElementById 而不是仅仅给出字段的名称/ID。

因此,我认为您还应该在 PHP 部分周围发布引号,因此:

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

如果 onclick 事件加载了正确的文本,您应该检查源代码。如果它不起作用,请尝试在 onclick 中对 PHP 文件执行 getJSON() 代码,该文件返回一个 json 编码数组,其中包含数据作为唯一键(data[0].field 或类似的东西)。

于 2011-05-05T22:52:45.987 回答
5

我找到了一个CodeMirror JQuery 插件,它承诺解决 jquery 添加其他事件处理程序的问题,但它对我不起作用:-/

这将是设置它的新方法:

$("textarea#codemirror").codemirror({
    lineNumbers : true,
    matchBrackets : true,
    tabMode: "indent"
});
于 2012-07-17T11:28:39.197 回答