Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Tinymce插件未获取要在数据库中上载的textarea值_Php - Fatal编程技术网

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();
      });
  }
});