AJAX重新加载页面而不插入数据库

时间:2014-12-18 13:06:11

标签: javascript php jquery ajax

我是Ajax的新手,很困惑。问题是ajax重新加载页面。 url中提到的函数将数据插入数据库。但页面重新加载。我猜这个URL不起作用,但我不确定。

这是我的控制器功能

public function insert_student_fee_payment()
{
    $std_code=$this->input->post('std_code');
    $total_fee=$this->input->post('total_fee');
    $payable_fee=$this->input->post('payable_fee');
    $date=date('Y m d');

    $class_detail=$this->db->select('class.class_year,class.class_semester')
    ->join('class','class_student.class_id=class.class_id','LEFT')
    ->where('class_student.student_id',$std_code)
    ->where('class_student.class_student_status',2)
    ->limit(1)
    ->get('class_student')
    ->result();

    if(count($class_detail)>0)
    {
        foreach($class_detail as $cd)
        {
            $year=$cd->class_year;
            $semester=$cd->class_semester;
        }
    }

    $data=array(
    'std_code'=>$std_code,
    'year'=>$year,
    'semester'=>$semester,
    'total_fee'=>$total_fee,
    'payable_fee'=>$payable_fee,
    'date'=>$date,
    'status'=>2
    );

    if($this->db->insert('student_fees',$data))
    {
        echo '1';
    }


}

这是我的Ajax代码

<script type="text/javascript">
$(document).ready(function(){

$('#insert_fee_payment').click(function(){

var std_code=$('#std_code').text();
var total_fee=$('#total_fee').text().split(' ');
var payable_fee=$('#payable_fee').text().split(' ');
total_fee=total_fee[0];
payable_fee=payable_fee[0];

var data='std_code='+std_code+'&total_fee='+total_fee+'&payable_fee='+payable_fee;
$.ajax({
        url: '<?php echo base_url()."index.php/finance/insert_student_fee_payment;?>',
        type: 'POST',   
        data: data,
        success: function(response)
        {
          alert(response);     
        },
        error: function(response,status,err)
        {
          alert(err.message);
        }
}); 

});  
});

任何帮助人员

2 个答案:

答案 0 :(得分:2)

我们没有看到HTML,因此很难说出错是什么,但我的猜测$('#insert_fee_payment')是一个提交按钮,因此您必须默认取消操作提交表格。

$('#insert_fee_payment').click(function(e){
    e.preventDefault();
};

$('#insert_fee_payment').click(function(){

var std_code=$('#std_code').text();
var total_fee=$('#total_fee').text().split(' ');
var payable_fee=$('#payable_fee').text().split(' ');
total_fee=total_fee[0];
payable_fee=payable_fee[0];

var data='std_code='+std_code+'&total_fee='+total_fee+'&payable_fee='+payable_fee;
$.ajax({
        url: '/index.php/finance/insert_student_fee_payment',
        type: 'POST',   
        data: data,
        success: function(response)
        {
          alert(response);     
        },
        error: function(response,status,err)
        {
          alert(err.message);
        }
}); 
return false;
});  

答案 1 :(得分:1)

在错误功能之后添加返回false。

    $(document).ready(function(){

    $('#insert_fee_payment').click(function(){

    var std_code=$('#std_code').text();
    var total_fee=$('#total_fee').text().split(' ');
    var payable_fee=$('#payable_fee').text().split(' ');
    total_fee=total_fee[0];
    payable_fee=payable_fee[0];

    var data='std_code='+std_code+'&total_fee='+total_fee+'&payable_fee='+payable_fee;
     $.ajax({
    url: '/index.php/finance/insert_student_fee_payment',
    type: 'POST',   
    data: data,
    success: function(response)
    {
      alert(response);     
    },
    error: function(response,status,err)
    {
      alert(err.message);
    }
    return false;
    }); 

    });  
    });