You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Laravel Tab面板的No Production标签请求改为POST方法

将Laravel Tab面板的GET请求改为POST请求

针对你需要把“No Production”标签的请求从GET改为POST的需求,这里提供两种可行方案:

方案一:隐藏表单提交(页面刷新式)

这种方式通过点击标签触发隐藏表单的POST提交,参数不会暴露在地址栏:

  1. 在页面合适位置添加隐藏的POST表单:
<form id="noProductionForm" action="{{ route('admin.productionData.index') }}" method="POST" style="display: none;">
    @csrf
    <input type="hidden" name="no_production_tab" value="1">
</form>
  1. 修改原Tab标签的代码,替换为点击触发表单提交:
<div class="panel panel-primary tabs-style-2">
    <div class="tab-menu-heading">
        <div class="tabs-menu1">
            <!-- Tabs -->
            <ul class="nav panel-tabs main-nav-line" >
                <li><a href="{{ route('admin.productionData.index') }}" class="nav-link {{ $no_production_tab ? '' : 'active' }}" data-toggle="tab" >Production</a></li>
                <li><a href="javascript:void(0)" class="nav-link {{ $no_production_tab ? 'active' : '' }}" onclick="document.getElementById('noProductionForm').submit()">No Production</a></li>
            </ul>
        </div>
    </div>
</div>
  1. 确保路由支持POST请求
    在routes/web.php中修改对应路由,允许GET和POST两种请求方式:
Route::match(['get', 'post'], 'admin/production-data', [ProductionDataController::class, 'index'])->name('admin.productionData.index');

方案二:AJAX异步加载(无刷新式)

如果希望Tab切换时不刷新整个页面,用AJAX发送POST请求并更新内容:

  1. 修改Tab标签代码:
<div class="panel panel-primary tabs-style-2">
    <div class="tab-menu-heading">
        <div class="tabs-menu1">
            <!-- Tabs -->
            <ul class="nav panel-tabs main-nav-line" >
                <li><a href="{{ route('admin.productionData.index') }}" class="nav-link {{ $no_production_tab ? '' : 'active' }}" data-toggle="tab" >Production</a></li>
                <li><a href="javascript:void(0)" class="nav-link {{ $no_production_tab ? 'active' : '' }}" id="noProductionTab">No Production</a></li>
            </ul>
        </div>
    </div>
    <!-- 假设你的Tab内容容器如下,根据实际结构调整 -->
    <div class="tab-content">
        <!-- 内容会通过AJAX更新 -->
    </div>
</div>
  1. 添加AJAX处理代码(基于jQuery,Laravel默认集成):
$(document).ready(function() {
    $('#noProductionTab').click(function() {
        // 切换标签激活状态
        $('.nav-link').removeClass('active');
        $(this).addClass('active');
        
        // 发送POST请求
        $.post("{{ route('admin.productionData.index') }}", {
            _token: "{{ csrf_token() }}",
            no_production_tab: 1
        }, function(response) {
            // 更新Tab内容容器的内容,根据实际容器类名调整
            $('.tab-content').html(response);
        });
    });
});
  1. 路由调整同方案一,确保支持POST请求,同时控制器方法需要根据请求类型返回对应内容(如果是AJAX请求,可返回部分视图而非完整页面)。

内容的提问来源于stack exchange,提问作者Hima Parekh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:37:33