从jqueryajax加载php页面卸载当前页面

load php page from jquery ajax post unloading the current page

本文关键字:卸载 当前页 php jqueryajax 加载      更新时间:2023-09-26

我需要生成一个显示在php页面中的报告,该页面将由jquery ajax调用调用。有谁能帮我做这件事吗。

jquery ajax帖子如下:

$('#report_condition #Submit_rpt_betn_dates').on('click', function(){
        var start_dt = $('#report_condition').find('.rpt_betn_dates').find('.start_search_date').val();
        var end_dt = $('#report_condition').find('.rpt_betn_dates').find('.end_search_date').val();
        alert('you want to generate report between '+start_dt+' and '+end_dt);
    $.ajax({  
        type: "POST",  
        url: "./report-betn-dates.php",
        data: {'startdt':start_dt, 'enddt':end_dt}, //the first parameter in the pair is actually the key for $_POST in PHP
        //and it must be withing quotes for ajax to run!!
        crossdomain: true,
        success: function(response) {
        }
    });
});

我尝试在ajax调用的success参数中使用$('body').html(response);。但是由于这个原因,我无法访问php页面的单独css文件。因此,我想卸载包含ajax调用的页面,并加载带有通过$_POST[]发送的数据的php页面。

Ajax用于部分内容加载、异步交互等。由于您试图实现的是用自己的静态资源(css,js)加载完整的新页面,因此这是完美的"同步"场景。那么,你为什么不使用一个更简单的设置,比如一个在post中发送所需的vars并将用户移动到正确的php页面的表单呢?

$('#report_condition #Submit_rpt_betn_dates').on('click', function(){
        var fake_form   = $('<form method="post" action="report-betn-dates.php">');
        var input_start = $('<input type="hidden" name="startdt">');
        var input_end   = $('<input type="hidden" name="enddt">');
        $(fake_form).append(input_start);
        $(fake_form).append(input_end):
        $(fake_form).submit();
});