所以,我有一个以下ajax代码和控制器代码,我的问题是我想插入评论而不刷新页面而不是重定向到另一个页面,似乎每当我点击btnCommentSubmit它将我重定向到我的控制器页面,怎么预防呢?
Ps。插入工作正常
// AJAX代码
$('#btnComment').click(function(e){
var comment_identifier = $(this).data("value");
var comment_by = $(this).data("id");
$('#formAddComment').attr('action', '<?php echo base_url() ?>Discussion/addComment/'+comment_identifier+"/"+comment_by);
});
$('#btnCommentSubmit').click(function(){
var url = $('#formAddComment').attr('action');
var addCommentTxt = $('#addCommentTxt').val();
$.ajax({
type: 'post',
url: url,
data: {addCommentTxt:addCommentTxt},
success: function(){
alert('success');
},
error: function(){
console.log(data);
alert('Could not add data');
}
});
});
});
//控制器代码
public function addComment(){
$cIden = $this->uri->segment(3);
$cBy = $this->uri->segment(4);
$data = array(
"comment_identifier" => $cIden,
"comment_by" => preg_replace('/[^a-zA-Z-]/', ' ', $cBy),
"comment" => $this->input->post('addCommentTxt'),
"comment_at" => time()
);
if ($this->Crud_model->insert('comments',$data)) {
return true;
}else{
return false;
}
}
答案 0 :(得分:1)
在功能开头添加e.preventDefault()
:
$('#btnCommentSubmit').click(function(e){
e.preventDefault();
...
}
答案 1 :(得分:0)
您可能想要使用jQuery表单插件。它将表单提交给我们的控制器,没有任何页面刷新/重定向。我一直都在使用它。
<强> https://jquery-form.github.io/form/ 强>
使用示例:
$('#form').ajaxForm({
beforeSubmit: function() {
//just optional confirmation
if (!confirm('Are you sure want to submit this comment?')) return false;
show_loading();
},
success: function(status) {
hide_loading();
if (status == true) {
alert('success');
} else {
alert('Could not add data');
}
}
});
答案 2 :(得分:0)
您可以javascript:void(0);
使用href="javascript:void(0);"