【问题标题】:how to stop ajax request after type:Post [closed]类型后如何停止ajax请求:发布[关闭]
【发布时间】:2016-03-08 09:57:05
【问题描述】:

我正在通过 ajax 向控制器/函数发送发布请求并成功返回结果:它会像往常一样在同一页面上加载结果,但是当我到达控制器/函数时我想退出 ajax,因为我想要在那里加载不同的视图 $this->load->view('htmlfile').

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

【问题讨论】:

  • 我不明白你的问题?你想加载其他模板吗?为什么不通过 ajax 发送模板路径并检查函数内部的 $_POST 值?

标签: javascript php jquery codeigniter


【解决方案1】:

您只想中止 $.ajax 调用,对吗?请查看Abort Ajax requests using jQuery 以获得答案。

但是,您不能从 PHP 中终止它。 $.ajax 在您的客户端浏览器中运行,而不是在您的 PHP 服务器中。并且 $.ajax 调用在单独的线程中运行 PHP,而不是加载视图的 PHP。 你最终所能做的就是当你想加载一个新视图时,你肯定有一个客户端在浏览器上执行的操作。在将请求发送到您的 PHP 服务器之前,您可能需要先中止 $.ajax 调用。 另一种方法是拥有一个 PHP 共享内存变量,您在加载视图时设置该变量,并实现您的 $.ajax PHP 调用处理程序,如果为该会话设置了该变量,您将停止处理。有点复杂 vs 简单地放手。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多