我有一个像这样的满足的div:
<form>
<div name="new_post" class="post" contenteditable="true"></div>
<button type="submit">Submit</button>
</form>
contenteditable div允许粗体和斜体标签,但 没有其他标签 。
我的问题是,如果用户输入类似Hello there <u>world</u>!
的内容,则会将其作为Hello there
保存在数据库中。它似乎删除了标签后的所有内容,我不知道为什么。
我使用AJAX和PHP处理帖子,所以这里是代码的其余部分。
的Ajax:
$(document).ready(function() {
$(document).on("submit", "form", function(event) {
event.preventDefault();
alert($('.post').html()); // added this to debug it. This prints "Hello there <u>world</u>!"
$.ajax({
url: 'php/post.php',
type: 'POST',
dataType: 'json',
data: $(this).serialize() + "&post_field=" + $('.post').html(),
success: function(data) {
alert(data.message);
}
});
});
});
PHP:
<?php
$post = $_POST["post_field"];
// query to insert post into database goes here
$array = array('message' => $post);
echo json_encode($array);
?>
请帮忙!
答案 0 :(得分:6)
变化:
$('.post').html()
为:
encodeURIComponent($('.post').html())
HTML字符需要在URL参数中编码。