2014-12-18 5 views
0

Я новичок в Ajax и смущен. Проблема в том, что ajax перезагружает страницу. Функция, указанная в URL, вставляет данные в базу данных. но страница перезагружается. Я думаю, что URL-адрес не работает, но я не уверен в этом.AJAX перезагружает страницу без вставки в базу данных

Вот мой контроллер Функция

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); 
     } 
}); 

}); 
}); 

любой помощи ребята

+0

попытка изменить URL в Ajax запроса: - URL: 'Финансы/insert_student_fee_payment' –

+0

пытавшихся возможные варианты, но не работал. – Shariati

+0

попробуйте протестировать его, указав хардкорный URL-адрес, где вы можете сделать запрос? можете ли вы использовать base_url()? –

ответ

1

Add возвращают ложные после функции ошибки.

$(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; 
    }); 

    }); 
    }); 
2

Мы не видим HTML так трудно сказать, что не так, но я предполагаю, что $('#insert_fee_payment') - кнопка отправки, так что u должен отменить действие по умолчанию, которое отправляет форму.

$('#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; 
});