如何停止类型后的ajax请求:发布
问题描述:
我通过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);
}
答
所有你想要的是中止$就调用,对不对?看看Abort Ajax requests using jQuery的答案。
但是,您不能从PHP中止它。 $ .ajax在您的客户端浏览器中运行,而不是在您的PHP服务器中运行。 $ .ajax调用在一个单独的线程中运行PHP,而PHP则加载您的视图。 您最终可以做的只是当您要加载新视图时,您肯定会对客户端所做的浏览器执行操作。在将请求发送到PHP服务器之前,您可能首先要中止$ .ajax调用。 另一种方法是创建一个PHP共享内存变量,在加载视图时设置,并实现您的$ .ajax PHP调用处理程序,并采用一种停止处理的方式,如果为该会话设置了该变量。有点复杂,只是放手罢了。
我不明白你的问题?你想加载其他模板?为什么不通过ajax发送模板路径,并检查函数中的$ _POST值? – kaito