首页 > 解决方案 > 同一个表单中的两个动作

问题描述

我需要你的帮助。我的 PHP 页面上有 5 个表单,并且在没有提交按钮的情况下发送数据处理。我通过将数据发送到处理数据并将我需要的信息返回到另一个页面的控制器(存储)来做到这一点。表单的提交由 AJAX 函数完成。

问题是现在我需要获取用户在表单中填写的信息,然后通过单击按钮生成一个带有标记选项的 PDF。怎么可能在同一个表单中有两个不同的动作?有必要在不提交的情况下处理数据,并且在处理后您可以单击转到另一个页面的按钮。

阿贾克斯功能:

function enviaForm(){            
        var url = $("#formulario").attr("action");     
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });        
        $.ajax({
            type: "POST",
            url:  url,
            data: $("#formulario").serialize(),           
            dataType: "json",
            beforeSend: function(){
                $('.ajax-loader').css("visibility", "visible");
            },
            success: function($retorno){               
                $("#inputLimCalculado").text ($retorno.limFinal); 
                $("#inputRisco1").text ($retorno.risco1); 
                $("#inputRisco2").text ($retorno.risco2);   
                $("#inputAuxCheqOuro").text ($retorno.auxCheqOuro); 
                $("#inputAuxCartaoEmp").text ($retorno.auxCartaoEmp); 
                preencherPortfolio();                           
            },
            error: function($retorno){
                console.log($retorno);
            }, 
            complete: function(){
                $('.ajax-loader').css("visibility", "hidden");
            }
        });           
        preencherPortfolio();
}   

形式:

@extends('entidades.layout')
<header class="row">
        @include('entidades.header')
</header>
@section('conteudo')
<div class="container">         
    <br> 
    {{ csrf_field()}}    
 
    <table class="table table-primary"> 
        <tr>    
                <td>MCI: {{ $entidades->cd_cli}}</td>
                <td>Entidade: {{$entidades->nome}}</td>                                 
        </tr>
        <tr>        
                <td>Atividade: {{$entidades->nom_atv}}</td>     
                <td>Natureza: {{$entidades->nom_atv}}</td>      
        </tr>           
    </table>        
    <button class="btn btn-primary mb-2" type="button" onclick="window.location='{{ route('entidade.index') }}'">Voltar à Consulta</button>     
</div>  

<div class="container">       
        <button class="btn btn-primary" type="button" id="entidadeBtn">
                Dados da Entidade
        </button>  

        <button class="btn btn-primary collapsed" type="button" id="dirigente1Btn" onclick="validaFormEnt();">
                Dirigente 1
        </button>        
       
        <button class="btn btn-primary collapsed" type="button" id="dirigente2Btn">
                Dirigente 2
        </button>   

        <button class="btn btn-primary" type="button" id="portfolioBtn" onclick="validarDirigentes();">
                Portfólio
        </button>  

        <button class="btn btn-primary" type="button" id="parecerBtn">
                Parecer                
        </button>  
        
        <!-- botão teste para o desenvolvedor -->
         <button class="btn btn-primary" type="button" id="desenvBtn">
                Desenvolvedor
        </button>  
        <!-- enviar dados na controller store para o cálculo do modelo                         -->
        <form method="post" action="{{ route('entidade.store') }}" name="form" id="formulario">                                             
                <input type="hidden" name="mci" value="{{$mci}}"/> 
                <meta name="csrf-token" content="{{ csrf_token() }}">
                <input type="hidden" name="_token" value="{{ csrf_token() }}"/>  
                <input type="hidden" name="cd_nat" value="{{$entidades->cd_nat}}"/>
                <input type="hidden" name="nom_atv" value="{{$entidades->nom_atv}}"/>
                <!-- Receber se os formulários foram preenchidos -->
                <input type="hidden" name="entControle" id="entControle" value="{{ csrf_token() }}"/>
                <input type="hidden" name="dirig1Controle" id="dirig1Controle" value="{{ csrf_token() }}"/>
                <input type="hidden" name="dirig2Controle" id="dirig2Controle" value="{{ csrf_token() }}"/>
                
                <!-- ////////////////////////////////////////////////////////////////////// -->
                <!-- //////Formulário da entidade////////////////////////////////////////// -->
                <!-- ////////////////////////////////////////////////////////////////////// -->
                <div id="entidadesToggle" style="display:none;">
                        @include('entidades.entidade')                                                                          
                </div>  
        
                <!-- ////////////////////////////////////////////////////////////////////// -->
                <!-- /////////Formulário do dirigente 1//////////////////////////////////// -->
                <!-- ////////////////////////////////////////////////////////////////////// -->
               
                <div id="dirigente1Toggle" style="display:none;">                                
                        @include('entidades.dirigente1')                                                                   
                </div>

                <!-- ////////////////////////////////////////////////////////////////////// -->
                <!-- /////////Formulário do dirigente 2//////////////////////////////////// -->
                <!-- ////////////////////////////////////////////////////////////////////// -->
                <div id="dirigente2Toggle" style="display:none;">
                        @include('entidades.dirigente2') 
                </div>
                

                <!-- ////////////////////////////////////////////////////////////////////// -->
                <!-- /////////////////////////////////Portfólio//////////////////////////// -->
                <!-- ////////////////////////////////////////////////////////////////////// -->
                <div id="portfolioToggle" style="display:none;">
                        @include('entidades.portfolio')                                                                          
                </div>        
                                
                <!-- /////////////////////////////////////////////////////////////////////// -->
                <!-- /////////////////////////////////Parecer/////////////////////////////// -->
                <!-- /////////////////////////////////////////////////////////////////////// -->

                <div id="parecerToggle"  style="display:none;">           
                        @include('entidades.parecer')                           
                </div> 
                 <!-- botão para gerar súmula -->
        <button class="btn btn-primary" type="submit" id="gerarBtn" action="pagina.php" >
                Gerar Súmula
        </button>                                     
        </form>      
        <div class="ajax-loader" style = "display:none;">
                <img src="{{ url('img/ajax-loader.gif') }}" class="img-responsive" />
        </div>
</div>

@endsection

控制器:

public function store(Request $request){
......
return json_encode(['limFinal'=> $limFinal, 'mci'=> $mci, 'risco1'=>$risco1, 'risco2'=>$risco2,
        'auxCheqOuro'=>$auxCheqOuro, 'auxCartaoEmp'=>$auxCartaoEmp]);
}

标签: ajaxlaravelformssubmit

解决方案


推荐阅读