Quill Delta HTML 并提交验证 [php & Smarty]

Quill Delta to HTML & Submit Validation [php & Smarty]

我在网站上实施 Quill 时遇到了 2 个问题。

  1. 我想将 Delta 转换为 HTML。为此,我使用这个:

    var quill = new Quill('#editor-container', {
    modules: {
    toolbar: true
    },
    theme: 'snow'
    });
    
    var form = document.querySelector('form');
    form.onsubmit = function() {
    var text = document.querySelector('input[name=text]');
    text.value = JSON.stringify(quill.root.innerHTML);
    };
    

    和HTMl形式:

               <div class="form-group">
             <label for="text" class="control-label">{$lang.a_text}:</label>
             <input name="text" type="hidden">
             <div id="editor-container">{$row.text|esc}</div>
              </div>
           <input type="submit" name="ok" value="Save" class="btn btn-primary">
    

在这种情况下,在文本的顶部和底部打印 " 并打印到输出。哪里有问题?

我的 2-nt 问题是表单验证。 我的 php 脚本中有这个:

        if ($_POST['ok']) {

        if (mb_strlen(Core::Input($_POST['text'])) < 2 || mb_strlen(Core::Input($_POST['text'])) > 50000)
            $error = 'invalid text length!';
    }

但是当我在 <input type="submit" name="ok" value="Save" class="btn btn-primary"> 上单击保存时,错误没有显示,并且表单成功地空保存到数据库。

对于你的第一期,改变这个:

text.value = JSON.stringify(quill.root.innerHTML);

至此:

text.value = quill.root.innerHTML;

并且会正常工作

第二个问题,这个如何

if ($_POST['ok']) {
    if (mb_strlen(Core::Input($_POST['text'])) > 2 && mb_strlen(Core::Input($_POST['text'])) < 50000) {
        // do save data

    } else {
        $error = 'invalid text length!';
        // do displaying error
    }
}