Javascript 在DB中发出保存注释

Javascript 在DB中发出保存注释,javascript,php,mysql,ajax,summernote,Javascript,Php,Mysql,Ajax,Summernote,我在使用ajax保存数据库中的summernote值时遇到了一个问题,但当我不使用ajax时,一切都正常 说清楚 <?php include 'db.php'; $db=new db; if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_

我在使用ajax保存数据库中的summernote值时遇到了一个问题,但当我不使用ajax时,一切都正常

说清楚

<?php
  include 'db.php';
  $db=new db;

  if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
    if($_POST['act']=='save'){
      $content=$_POST['content'];
      $id=25;

      $query="UPDATE content SET content=? WHERE id=?";
      $db->execquery($query, 'si', array($content, $id));
      echo json_encode(array("response"=>'success'));
      exit();
    }
  }
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
  <title>summernote</title>
  <!-- include jquery -->
  <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 

  <!-- include libraries BS3 -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css" />
  <script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js"></script>

  <!-- include summernote -->
  <link rel="stylesheet" href="../dist/summernote.css">
  <script type="text/javascript" src="../dist/summernote.js"></script>

  <script type="text/javascript">
    $(function() {
      $('.summernote').summernote({
          toolbar: [
            // [groupName, [list of button]]
            ['style', ['bold', 'italic', 'underline', 'clear']],
            ['font', ['strikethrough', 'superscript', 'subscript']],
            ['fontsize', ['fontsize']],
            ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['height', ['height']]
          ]
        });

      $('form').on('submit', function (e) {
        e.preventDefault();

        content=$('.summernote').summernote('code');
        data='act=save&content='+content;
        $.ajax({
          type: "POST",
          dataType: "JSON",
          data: data,
        })
        .fail(function(e){
            alert(e.response);
        })
        .done(function(data){
            if(data.response=='success'){
                alert('success!');
            }
        });
      });
    });
  </script>
</head>
<body>
<form action="#" novalidate>
  <div class="form-group">
    <label for="input">Text</label>
    <textarea class="form-input" id="input"></textarea>
  </div>
  <div class="form-group">
    <label for="contents">Contents</label>
    <textarea name="text" class="summernote" id="contents" title="Contents"></textarea>
  </div>
  <button type="submit" class="btn btn-default">submit</button>
</form>
</body>
</html>
execquery($query,'si',数组($content,$id));
echo json_编码(数组(“响应”=>“成功”);
退出();
}
}
?>
萨默诺特
$(函数(){
$('.summernote')。summernote({
工具栏:[
//[组名,[按钮列表]]
['style'、['bold'、'italic'、'underline'、'clear'],
['font',['strikethrough','superscript','subscript']],
['fontsize',['fontsize']],
['color',['color']],
[para',[ul',ol',段落]],
['height',['height']]
]
});
$('form')。关于('submit',函数(e){
e、 预防默认值();
content=$('.summernote')。summernote('code');
data='act=save&content='+content;
$.ajax({
类型:“POST”,
数据类型:“JSON”,
数据:数据,
})
.失败(功能(e){
警惕(如反应);
})
.完成(功能(数据){
if(data.response=='success'){
警惕(“成功!”);
}
});
});
});
正文
目录
提交
不管怎样,当我在summernote中键入简单文本时,值会被保存,但当我从msword粘贴一些文本时,保存的值会被剪切

我尝试了一些东西,当我按下submit时,我也将summernote值放入一个额外的文本区域,然后当我在DB中手动粘贴这些值时,一切都很好。我还尝试复制codeview值,然后手动粘贴到DB中,这样也很好。请帮忙


提前谢谢

我也有同样的问题,我用以下方法解决了它:

Javascript

content=encodeURIComponent($('.summernote').summernote('code'))

PHP


urldecode($\u POST[content])

警告超全局$\u GET和$\u REQUEST已被解码。对$\u GET或$\u请求中的元素使用urldecode()可能会产生意外和危险的结果。php.net