我想使用带有ajax帖子的textarea tinymce添加数据。但当我点击按钮并在firebug中看到我在调用ajax页面后查看网络选项卡以保存数据然后自动调用索引页面。但是,只有当我发布到使用Web域托管时,才会出现此问题。在localhost上一切顺利。请检查下面的代码并给我解释和代码改进。非常感谢你。
add.php
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<textarea class="tinymce" id="contentblog" name="contentblog"></textarea><br/>
<button type="button" id="AjaxSubmit" name="submit">Submit</button>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="plugin/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea.tinymce"
});
$(document).ready(function () {
$('#AjaxSubmit').click(function (){
var contentblog = tinymce.get("contentblog").getContent();
var form_data = new FormData();
form_data.append('contentblog', contentblog);
$.ajax({
url: 'add-ajax.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(data){
alert("Success !");
return true;
}
});
});
});
</script>
</body>
</html>
附加ajax.php
<?php
include_once('connection.php');
$contentblog = $_POST["contentblog"];
$data = array(
"contentblog" => $contentblog
);
$jsondata1 = json_encode($data);
$jsondata2 = json_decode($jsondata1, true);
$contentblog = $jsondata2['contentblog'];
$GetContentBlog = addslashes($contentblog);
$result = mysqli_query($mysqli, "INSERT INTO t_test(iscontents) VALUES('$GetContentBlog')");
if($result){
echo 'is success';
}
?>
答案 0 :(得分:0)
您需要阻止html表单的正常表单提交:
$('#AjaxSubmit').click(function (event ){
event.preventDefault();
如果没有这个,html表单会通过正常的http帖子提交表单并被重定向!
有关详细信息,请参阅https://api.jquery.com/event.preventdefault/!