【问题标题】:Ace Editor in PHP Web AppPHP Web App 中的 Ace 编辑器
【发布时间】:2011-07-12 04:38:27
【问题描述】:

我正在制作一个小型网络应用程序,允许用户通过Ace Editor 提交 html、css 和 javascript 内容。在这个编辑器中,将存储的内容回显到编辑器中就足够了,但是我无论如何都找不到将用户输入提交到数据库。我可以看到 JavaScript 生成了一个 textarea,但是我不确定它在做什么,如何到达它,或者我是否应该完全寻找其他东西。

我主要是在寻找一个字段或可以用来让 php 提交到数据库的东西。

【问题讨论】:

    标签: php javascript syntax-highlighting ace-editor


    【解决方案1】:

    编辑窗口的内容可通过会话 getValue 方法获得。例如,这里是标准 ACE 演示的扩展,用于保存文件:

    saveFile = function() {
        var contents = env.editor.getSession().getValue();
    
        $.post("write.php", 
                {contents: contents },
                function() {
                        // add error checking
                        alert('successful save');
                }
        );
    };
    

    我将 saveFile 调用添加到 demo.js 中已经存在的“Fake Save”。我用这样的代码替换警报:

    // Fake-Save, works from the editor and the command line.
    canon.addCommand({
        name: "save",
        bindKey: {
            win: "Ctrl-S",
            mac: "Command-S",
            sender: "editor|cli"
        },
        exec: function() {
            saveFile();
        }
    });
    

    php文件只有一行:

    $r = file_put_contents("foo.txt", $_POST["contents"]) or die("can't open file");

    【讨论】:

    • 这真是太棒了。谢谢你。我在同一页面上有三个编辑器,因此我已经可以看到如何使用您提供的 AJAX 邮政编码来区分它们。 var htmlContents = env.htmlEditor.getSession().getValue(); var cssContents = env.cssEditor.getSession().getValue(); var jsContents = env.jsEditor.getSession().getValue(); 显然我还必须更改内容:内容部分。谢谢你,你太棒了!
    • 嗨@Paul,有没有办法在没有 AJAX 帖子的情况下做到这一点?
    • @Dave - 我不知道。也许,试试 ACE 论坛groups.google.com/forum/#!forum/ace-discuss
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多