我正在使用ckeditor。我使用 AJAX 通过post方法发送ckeditor的内容。我的计划是在div中显示响应。但是在响应中我得到了整个页面的html,而不是编辑器的内容。这是怎么回事?我怎么才能只得到编辑器的内容
<?php
if(isset($_POST) && !empty($_POST)){
echo $_POST['content'];
}
?>
<html>
<head>
<script src='ckeditor/ckeditor.js'></script>
</head>
<body>
<form action='test.php' method='post'>
<textarea name="editor1" id="editor1" rows="10" cols="80">
This is my textarea to be replaced with CKEditor.
</textarea>
<input type='button' value='submit' onClick='lol(event);'>
</form>
<div id='content' style='border:2px solid black;'>
</div>
<script>
CKEDITOR.replace( 'editor1');
function lol(event){
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
//document.getElementById('content').innerHTML=xhr.response;
alert(xhr.responseText);
}
}
var value=CKEDITOR.instances.editor1.getData();
var params = "content="+value;
xhr.open('POST','test.php',true);
//xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
//alert(value);
}
</script>
</body>
</html>
2条答案
按热度按时间6kkfgxo01#
当您使用
echo
时,将发送响应,然后发送html。如果您想在echo
之后停止,请使用die();
:此外,还应检查内容是否已设置:
efzxgjgh2#
尝试这个解决方案,添加变量到Javascript变量调用params和这个变量来检查是否已经打开这些项目或没有,并防止主要项目不打开超过1次,即使你调用你的页面的 AJAX ,要清楚尝试l8ike的
var params = "content="+value+"isopepend=1";
然后使用php if语句,如如果没有所需的变量,然后打印您的主要项目,这将只发生一次,当你将访问这页直接与没有 AJAX 请求