Php Tinymce插件未获取要在数据库中上载的textarea值
我试图上传数据库中的数据 我正在使用Php Tinymce插件未获取要在数据库中上载的textarea值,php,Php,我试图上传数据库中的数据 我正在使用tinymce插件到文本区域编辑器。当我提交数据时,textarea值上载空文本。请在下面找到前端和后端代码 前端代码: <form id="upload" enctype="multipart/form-data" method="post"> <textarea class="tinymce" name="product_tip" id="product_tip" placeholder="" col="5"></textar
tinymce
插件到文本区域编辑器。当我提交数据时,textarea值上载空文本。请在下面找到前端和后端代码
前端代码:
<form id="upload" enctype="multipart/form-data" method="post">
<textarea class="tinymce" name="product_tip" id="product_tip" placeholder="" col="5"></textarea>
<input type="button" name="submit" value="Submit" class="upload-btn"/>
</form>
后端代码:
<?php
$product_tip=$_POST["product_tip"];
if(empty($product_tip)) {
echo "<div class='alert alert-danger'>Please enter Product tips.</div>";
}
else{
$result=mysqli_query($conn, "INSERT INTO product(tip) VALUES ('$product_tip')")or die("Could not retrieve image: " .mysqli_error($conn));
echo 1;
}
?>
添加tinyMCE.triggerSave()代码>在像这样的连接文件中-
$('.upload-btn').click(function(){
tinyMCE.triggerSave();
var formdata=new FormData($('#upload')[0]);
$.ajax({
url:'includes/backend_product_upload.php',
method: "POST",
async: false,
cache: false,
contentType: false,
processData: false,
data : formdata,
success:function(answer_from_actionpage){
if(answer_from_actionpage == 1){
$('.error').html("<div class='alert alert-success'>Successfully Product Upload</div>");
//$('.form-control').val("");
}else{
$('.error').html(answer_from_actionpage);
}
}
})
});
$('.upload btn')。单击(函数(){
tinyMCE.triggerSave();
var formdata=new formdata($('#upload')[0]);
$.ajax({
url:'includes/backend\u product\u upload.php',
方法:“张贴”,
async:false,
cache:false,
contentType:false,
processData:false,
数据:formdata,
成功:功能(从操作页面回答){
如果(从行动页回答=1){
$('.error').html(“成功上传产品”);
//$('.form control').val(“”);
}否则{
$('.error').html(从操作页面回答);
}
}
})
});
默认情况下,通过标准HTML表单提交表单时,TinyMCE将自动更新基础的
。这是TinyMCE中的内置行为,因为大多数应用程序不需要保持
持续同步的开销
如果您不依赖于标准的HTML表单提交事件,那么您有几个选项
启动AJAX表单提交过程时:
TinyMCE有一个triggerSave()
方法,强制编辑器立即与
同步
当用户希望提交表单并执行验证时,可以首先调用triggerSave()
TinyMCE事件:
正如您对自己问题的回答所示,您当然可以依靠各种编辑器事件,通过triggerSave()
方法将编辑器同步到
。这没有任何技术问题,只要知道如果您依赖更改事件之类的事件,您可能会触发大量此类事件。如果一个页面上有大型/复杂的HTML内容或多个编辑器,则不断与底层
同步可能会影响浏览器的性能
哪个更好?
如果您不需要对内容进行实时验证。。。只需在AJAX提交过程开始时调用triggerSave()
,可能会更容易(不需要与事件关联的TinyMCE配置代码),并减少浏览器的开销
如果您确实需要对内容进行实时验证。。。使用更改事件之类的事件来同步
是更好的解决方案。可能是这样的:
tinymce.init({
selector: "#myTextarea",
...
setup: function (editor) {
editor.on('change', function () {
tinymce.triggerSave();
});
}
});
SQL查询的可能重复对SQL注入是完全开放的。使用而不是像那样连接查询。出于好奇,为什么将async
设置为false?
tinymce.init({
selector: "#myTextarea",
...
setup: function (editor) {
editor.on('change', function () {
tinymce.triggerSave();
});
}
});