其他分享
首页 > 其他分享> > 为什么nicEdit所见即所得编辑器有时会阻止精确发送值?

为什么nicEdit所见即所得编辑器有时会阻止精确发送值?

作者:互联网

我在项目的管理控制面板上使用了nicEditor.但是有些奇怪.
当我想发送一个值插入数据库时​​,它很好用.但是在编辑页面中,当我要处理从textarea发送的值时,将仅发送在textarea中插入的第一个值,如果要更改此值,则在下一页中将再次拥有第一个值.
这是我用来将所有textareas转换为nicEditor的代码.

bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });

现在,假设我有一个包含存储值的表单,如下所示:

<textarea name="description"><?php echo $description; ?></textarea>

如果$description值为123,我将其更改为1234,然后提交表单,则从$_POST [‘description’]发送的给定值为123,这是不正确的.但是,当我删除加载nicEditor的第一行时,发送的值更改为正确的1234.

有什么问题?

编辑:
这是我在第一页中的内容:

<?php
$id = $_GET['id'];
$sql = "SELECT * FROM tbl_hotels WHERE id = ?";
$q = $db->prepare($sql);
$q->execute(array($id));
$result = $q->fetch();
$des = $r['des'];
?>

<form action="process.php" method="post">
  <textarea name="des" class="large-input"><?php echo $des; ?></textarea>
  <input type="submit" value="send">
</form>

这就是我在下一页中所做的:

<?php
$des = $_POST['des'];
echo $des;
?>

解决方法:

直接从他们的网站http://nicedit.com/docs.php拍摄

Nicedit is no longer under active development, you might want to try
CKEditor or TinyMCE instead.

话虽如此,您最有可能以普通提交方式以外的其他方式提交表格,因此编辑器不会与您的< textarea>同步.您可以尝试在提交之前触发以下代码进行同步.

[nicInstance] .saveContent()

>仅对于要替换此方法的nicInstance,它会将编辑器的内容与textarea值同步.如果提交了带有原始内容的表单,这将自动完成.但是,您可能要自己进行同步.

编辑:

JS

var myform = document.getElementById('myForm');
myform.addEventListener('submit', function() { 
    var myEditor = nicEditors.findEditor('myEditor');
    myEditor.saveContent(); 
    return true;
});

的PHP

<form action="process.php" method="post" id="myForm">
  <textarea name="des" class="large-input" id="myEditor"><?php echo $des; ?></textarea>
  <input type="submit" value="send">
</form>

标签:send,return-value,load,nicedit,php
来源: https://codeday.me/bug/20191030/1965524.html