我使用以下php和ajax将模糊数据发布到SQL。它可以很好地将基本文本传递给数据库,但我已经将CKeditor添加到几个字段以允许WYSIWYG编辑,我似乎无法弄清楚正在发生什么正在剥离HTML标记并禁止它们通过。
这是php
<?php
if(!empty($_POST))
{
//database settings
include "config.php";
foreach($_POST as $field_name => $val)
{
//clean post values
$field_userid = trim($field_name);
$val = trim(mysql_real_escape_string($val));
//from the fieldname:user_id we need to get user_id
$split_data = explode(':', $field_userid);
$user_id = $split_data[1];
$field_name = $split_data[0];
if(!empty($user_id) && !empty($field_name) && !empty($val))
{
//update the values
mysql_query("UPDATE user_details SET $field_name = '$val' WHERE user_id = $user_id") or mysql_error();
echo "Field updated to server";
} else {
echo "Invalid Requests";
}
}
} else {
echo "Invalid Requests";
}
?>
js
$(function(){
//acknowledgement message
var message_status = $("#status");
$("[contenteditable=true]").blur(function(){
var field_userid = $(this).attr("id") ;
var value = $(this).text() ;
$.post('ajax.php' , field_userid + "=" + value, function(data){
if(data != '')
{
message_status.fadeIn("slow");
message_status.text(data);
//hide the message
setTimeout(function(){message_status.fadeOut("slow", "swing")},500);
}
});
});
});
以下是HTML的示例字段:
<p id="story1:<?php echo $row_rsTest['user_id']; ?>" contenteditable="true"><?php echo $row_rsTest['story1']; ?></p>
我觉得我错过了一些明显的东西。我在另一个实例中使用相同的CK编辑器,其中一个表单在Submit上发布,这可能是一个模糊问题吗?
答案 0 :(得分:0)
我在CKEditor论坛中也回复了:不是使用jQuery而是使用getText(令人惊讶的是,它只会提供文本),请使用CKEditor API并在编辑器实例上调用.getData()。