我有一个带有两个@include指令的视图,它们是执行AJAX调用时更新数据的子视图。在AJAX响应中,firt @include被正确更新,但是我需要在同一个调用中返回第二个@include来更新显示的数据。
我遵循onchange事件的方法来更新部分视图,如下所示,我相信该方法也将返回第二个部分视图,并按如下方式加载:
控制器
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
<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>发布于 2020-09-28 19:45:33
如果需要在AJAX响应中返回2个视图,可以使用response()->json()方法这样做:
$dashboardIndicators = view('pages.dashboard.dashboardindicators', compact(...)->render();
$dashboard = view('pages.dashboard.dashboard', compact(...)->render();
return response()->json(['dashboardIndicators' => $dashboardIndicators, 'dashboard' => $dashboard]);然后,在您的success:函数中,访问如下:
$("#dashboardindicators").html(data.dashboardIndicators);
$("#dashboard").html(data.dashboard);另外,确保使用->render()函数将视图转换为HTML。
https://stackoverflow.com/questions/64108609
复制相似问题