php - 使用 mysqli 从 contentEditable div 保存数据

标签 php jquery mysql mysqli contenteditable

我正在尝试将数据从 contentEditable div 保存到 mySql 数据库。但似乎'+'符号不能存储在数据库中。这是正确的概念还是我遗漏了什么?

索引.php

<div id="la_sent" contentEditable=true></div>
<button class="saveChanges">Save changes</button>

脚本.js

$(document).ready(function(){
  $( ".saveChanges" ).click(function() {
      content = $('#la_sent').html();
      dataUrl = "iid=1&content="+content;
      $.ajax({
        url:"ajax.php",
        type:"POST",
        data:dataUrl,
        success:function(data){
            ...
      }});
  }); 
}); 

ajax.php

$type = $_POST['iid'];
$content = $_POST['content'];
$mysqli=connect_database(); //connection to database
$stmt = $mysqli->prepare('UPDATE email_structure SET content = ? WHERE type = ?');
$stmt->bind_param('ss', $content, $type);
$ress = $stmt->execute();
$stmt->close();
$mysqli->close();
echo "OK";

例如:如果我在 div 元素字符串 'a+b+c' 中写入,它会在 DB 字符串 'a b c ' 中添加。知道为什么吗?

最佳答案

默认情况下,加号会被替换为空格,因此您必须先对它们进行编码。

encodeUriComponent是用 javascript 实现的一种方法

因此,编辑您的 script.js 以通过 encodeURIComponent 传递 content 变量,然后再将其附加到 datUrl 应该可以诀窍。

$(document).ready(function(){
  $( ".saveChanges" ).click(function() {
      content = $('#la_sent').html();
      dataUrl = "iid=1&content="+encodeURIComponent(content);  //encode content variable
      $.ajax({
        url:"ajax.php",
        type:"POST",
        data:dataUrl,
        success:function(data){
            ...
      }});
  }); 
}); 

关于php - 使用 mysqli 从 contentEditable div 保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33880534/

相关文章:

jquery - 如何在 DIV 的 mouseenter 上停止动画

mysql - 内部联接使用 like 子句而不是两行仅返回 1 行

mysql - Mysql中如何拆分列?

php - PHP 和 MYSQL 中的 IM 聊天系统?

javascript - 关闭浏览器时使用ajax执行查询的解决方案

php - 自动 Paypal 付款

javascript - 如果用户脚本不活动,则不会关闭窗口

javascript - jQuery 插件开发帮助

php - 似乎无法让我的 SEO 友好 URL 工作(htaccess)

php - 如果值存在于 mysql 表中,则选中复选框