如何不在ajax提交codeigniter上重定向页面

时间:2017-10-17 03:12:50

标签: php jquery ajax codeigniter

所以,我有一个以下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;
        }

    }

3 个答案:

答案 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);"