3

次のテキストエリアとボタンがあります。事前定義されたテキストで入力し、その間に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
});

フィールドの名前/ID を指定するだけでなく、getElementById に注意してください。

したがって、PHP 部分の周りにも引用符を投稿する必要があると思います。

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

onclick イベントに正しいテキストがロードされているかどうか、ソースコードを確認する必要があります。うまくいかない場合は、PHP ファイルに対して onclick で getJSON() コードを実行してみてください。このコードは、唯一のキー (data[0].field など) としてデータを含む json でエンコードされた配列を返します。

于 2011-05-05T22:52:45.987 に答える
5

他のイベント ハンドラを追加する jquery の問題を解決することを約束するCodeMirror JQuery プラグインを見つけましたが、それは私にとってはうまくいきます :-/

これは、セットアップする新しい方法です。

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