【发布时间】:2016-02-26 02:52:11
【问题描述】:
我正在尝试将数据从 contentEditable div 保存到 mySql DB。但似乎 '+' 符号不能存储在 DB 中。这是正确的概念还是我遗漏了什么?
index.php
<div id="la_sent" contentEditable=true></div>
<button class="saveChanges">Save changes</button>
script.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' 中。知道为什么吗?
【问题讨论】:
-
我把它改成 GET 还是一样的结果。
-
加号默认替换为空格。尝试首先通过encodeURIComponent 在您的javascript 中传递
content变量。dataUrl = "iid=1&content="+encodeURIComponent(content); -
@Jeribo 非常感谢!解决了它:)
-
@Jeribo 我认为答案最适合标记为已解决;-) 干得好。
标签: php jquery mysql mysqli contenteditable