2016-03-08 100 views
-2

我通過ajax向控制器/函數發送post請求,並獲得成功的結果:它將結果加載到同一頁面,因爲它總是,但我想退出ajax時,我到達控制器/函數,因爲我想加載不同的視圖$ this-> load-> view('htmlfile')。如何停止類型後的ajax請求:發佈

function test() { 

    var wingId = $('#wing_id').val(); 
    var classId = $('#class_id').val(); 
    var sectionId = $('#section_id').val(); 
    var gender = $('#gender').val();   

    $('#error').hide(); 

    $.ajax({ 
     url: "<?php echo base_url()?>admin/library/totalStudentsReportPrint/", 

     data: { 

      wingId: wingId, 
      classId: classId, 
      sectionId: sectionId, 
      gender: gender 

     }, 
     type: "post", 

     success: function (result) { 
      $('#data_result').html(result); 

     } 
    }); 

} 

PHP的控制器功能

function totalStudentsReportPrint(){ 

    $student_data['wingId'] = $_POST['wingId']; 
    $student_data['classId'] = $_POST['classId']; 
    $student_data['sectionId'] = $_POST['sectionId']; 
    $student_data['gender'] = $_POST['gender'];   


$this->load->view('institute/admin/library/total_students_btm_tbl_print',$student_data); 
} 
+0

我不明白你的問題?你想加載其他模板?爲什麼不通過ajax發送模板路徑,並檢查函數中的$ _POST值? – kaito

回答

0

所有你想要的是中止$就調用,對不對?看看Abort Ajax requests using jQuery的答案。

但是,您不能從PHP中止它。 $ .ajax在您的客戶端瀏覽器中運行,而不是在您的PHP服務器中運行。 $ .ajax調用在一個單獨的線程中運行PHP,而PHP則加載您的視圖。 您最終可以做的只是當您要加載新視圖時,您肯定會對客戶端所做的瀏覽器執行操作。在將請求發送到PHP服務器之前,您可能首先要中止$ .ajax調用。 另一種方法是創建一個PHP共享內存變量,在加載視圖時設置,並實現您的$ .ajax PHP調用處理程序,並採用一種停止處理的方式,如果爲該會話設置了該變量。有點複雜,只是放手罷了。