首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel -在AJAX响应中返回2视图

Laravel -在AJAX响应中返回2视图
EN

Stack Overflow用户
提问于 2020-09-28 19:42:08
回答 1查看 845关注 0票数 2

我有一个带有两个@include指令的视图,它们是执行AJAX调用时更新数据的子视图。在AJAX响应中,firt @include被正确更新,但是我需要在同一个调用中返回第二个@include来更新显示的数据。

我遵循onchange事件的方法来更新部分视图,如下所示,我相信该方法也将返回第二个部分视图,并按如下方式加载:

控制器

代码语言:javascript
复制
if($request->ajax()){
                
    return view('pages.dashboard.dashboardindicators', compact('chart4_prop_null','chart4_progress','chart3_prop_null','chart3_progress',
    'chart2_prop_null','chart2_progress','chart1_prop_null','chart1_progress',
    'market_center_dropdown', 'mega_agent_dropdown', 'teams_dropdown'));

    

} else {
    return view('pages.dashboard.dashboard', compact('chart4_prop_null','chart4_progress','chart3_prop_null','chart3_progress',
                                            'chart2_prop_null','chart2_progress','chart1_prop_null','chart1_progress',
                                            'market_center_dropdown', 'mega_agent_dropdown', 'teams_dropdown'));
}

JS

代码语言:javascript
复制
<script>
    $(document).ready(function () {
    
    $('.dropdown_get').on("change", function(){

        KTApp.block("#dashboardindicators", {
                overlayColor: "#000000",
                type: "v2",
                state: "success",
                message: "Procesando..."
            }),
        
        $.ajax({
        url: "/dashboard",
        method: 'GET',
        data: {
            market_center_id: $("#kt_market_center_dropdown option:selected").val(),
            mega_agent_id: $("#kt_mega_agent_dropdown option:selected").val(),
            team_id: $("#kt_team_dropdown option:selected").val(),
        },
        success: function (data) {
            $("#dashboardindicators").html(data);
            setTimeout(function () {
                    KTApp.unblock("#kt_blockui_1_content")
                });
             
        }
        });
    });
});
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-28 19:45:33

如果需要在AJAX响应中返回2个视图,可以使用response()->json()方法这样做:

代码语言:javascript
复制
$dashboardIndicators = view('pages.dashboard.dashboardindicators', compact(...)->render();
$dashboard = view('pages.dashboard.dashboard', compact(...)->render();

return response()->json(['dashboardIndicators' => $dashboardIndicators, 'dashboard' => $dashboard]);

然后,在您的success:函数中,访问如下:

代码语言:javascript
复制
$("#dashboardindicators").html(data.dashboardIndicators);
$("#dashboard").html(data.dashboard);

另外,确保使用->render()函数将视图转换为HTML。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64108609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档