Jump to content

Laravel: Modal abre ID Errado


klasss
Go to solution Solved by klasss,

Recommended Posts

Olá a todos,

Necessito de uma ajudinha para o meu projeto.
Tenho uma tabela que tem um botão para fazer a edição 
 

<div class="table-responsive">
  <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
    <thead>
    @foreach($capitulos as $cap)
                  <tr>
                    <th class="table-dark"> {{$cap->capitulo}}  </th>
                  </tr>
    </thead>
              <tbody>
              
              <tr>
               
                  <td> <b>Nome Ficheiro</b></td>
                  <td> <b>Versão</b></td>
                  <td> <b>Data ultima alteração</b></td>

              </tr>
                

              </tbody>

              <tbody>
              @foreach($cap->documentos as $doc)
              <tr>
               
                    <td><a href="{{url('storage',$doc->ficheiro)}}" target="_blank">  {{$doc->nome_ficheiro}} </a>  </td>
                    <td> {{$doc->versao}}  </td>
                    <td> {{$doc->data_ultima_alteracao}}  </td>

                  <td>
                  <a data-toggle="modal" data-target="#ModalPerfil3" href="{{route('documentacao.edit2', $doc)}}" ><i class="fas fa-edit text-info mr-1"></i></a>

                  </td>
                
              </tr>
              @endforeach 

              </tbody>
            @endforeach   
          </table>

Ao clicar no modal  <a data-toggle="modal" data-target="#ModalPerfil3" href="{{route('documentacao.edit', $doc)}}" ><i class="fas fa-edit text-info mr-1"></i></a> 
ele abre o modal mas abre com o ID errado. 

Exemplo:  consigo ver 2 registos : 
ID2 e ID3 , caso tente abrir o ID2 ele mostra-me o ID 3 
Caso abra o ID3 ele abre o correto 

Neste momento está a abrir o ultimo ID. 

No controller tenho o seguinte: 

 public function edit2(documentacao $id){
        $capitulos = capitulo::orderby('id', 'desc')->paginate();
        return view('painel-admin.documentacao.edit', ['docs' => $doc, 'id' => $id], compact('capitulos'));
    }

    public function editar2(Request $request, documentacao $doc){

        $doc->id_capitulo = $request->id_capitulo;
        $doc->nome_ficheiro = $request->nome_ficheiro;
        if ($request->hasFile('ficheiro') && $request->ficheiro->isValid()){


         $PDFPath = $request->ficheiro->store('public/documentacao_interna');

         $data['ficheiro'] = $PDFPath;

         $doc->ficheiro = $PDFPath;
        }
        //$doc->ficheiro = $request->file('ficheiro');
        $doc->versao = $request->versao;
        $doc->data_ultima_alteracao = $request->data_ultima_alteracao; 

               $doc->save();
               return redirect()->route('documentacao.index');
               
    }

Modal view

<div class="modal fade" id="ModalPerfil3" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="exampleModalLabel">Atualizar Ficheiro</h5>
                        <button class="close" type="button" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">×</span>
                        </button>
                    </div>

                    <form id="form-perfil" method="POST" action="{{route('documentacao.editar2', $doc)}}" enctype="multipart/form-data">
                    @csrf
                    @method('put')

                                            <div class="modal-body">

                            
                                    <div class="form-group">
                                        <label >Capitulo Associado</label>
                                        <select id="id_capitulo" name="id_capitulo" class="form-select" aria-label="Default select example">
                                            <option selected>Escolher Capitulo</option>
                                            @foreach($capitulos as $cap)
                                            <option class="form-control" value="{{$doc->id_capitulo}}" > {{$cap->capitulo}} </option>
                                            @endforeach 
                                            </select>
                                        </div>

                                    <div class="form-group">
                                        <label >Nome Ficheiro</label>
                                        <input value="{{$doc->nome_ficheiro}}" type="text" class="form-control" id="nome_ficheiro" name="nome_ficheiro" placeholder="Nome Ficheiro">
                                    </div>
                                    
                                    <div class="form-group">
                                        <label >Adicionar Ficheiro</label>
                                        <input type="file"  value="{{$doc->ficheiro}}" class="form-control" name="ficheiro" id="ficheiro" />
                                    </div>

                                    <div class="form-group">
                                    <label >Versão</label>
                                    <input value="{{$doc->versao}}" min="1"  value="1" step="0.1" type="number" class="form-control" id="versao" name="versao" placeholder="Versão">
                                    </div>

                                    <div class="form-group">
                                        <label >Data alteração</label>
                                        <input type="date" value="{{$doc->data_ultima_alteracao}}" class="form-control" id="data_ultima_alteracao" name="data_ultima_alteracao">
                                    </div>

                        </div>
                        <div class="modal-footer">

                            <button type="button" id="btn-fechar" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
                            <button type="submit" name="btn-salvar-perfil" id="btn-salvar-perfil" class="btn btn-primary">Guardar</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
</div>

 

Link to comment
Share on other sites

  • Solution

Problema ultrapassado da seguinte forma 

          <button type="button" class="btn" data-toggle="modal" data-target="#modalaceitar{{$item->id}}"> <i class="fas fa-check text-info mr-1" ></i> </button>
               
               
               <div class="modal" id="modalaceitar{{$item->id}}" tabindex="-1" role="dialog">
               <div class="modal-dialog">
                        <div class="modal-content">
                          <div class="modal-header">
                            <h5 class="modal-title" id="exampleModalLabel">Aceitar Despesa{{ $item->id}}</h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                              <span aria-hidden="true">&times;</span>
                            </button>
                          </div>
                          <div class="modal-body">
                            Deseja Realmente aceitar a despesa? 
                            
                          </div>
                          <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
                            
                            <form id="form-perfil" method="POST" action="{{route('despesas.editar', $item)}}">
                                        @csrf
                                        @method('put')
                            

                              <button type="submit" class="btn btn-success">Aceitar</button>
                        
                          </div>
                        </div>
                      </div>
                    </div>

                    <button type="button" class="btn" data-toggle="modal" data-target="#modalrejeita{{$item->id}}"> <i class="fas fa-ban text-danger mr-1" ></i> </button>
                    <div class="modal" id="modalrejeita{{$item->id}}" tabindex="-1" role="dialog">
                    <div class="modal-dialog">
                      <div class="modal-content">
                        <div class="modal-header">
                          <h5 class="modal-title" id="exampleModalLabel">Rejeitar Despesa</h5>
                          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                          </button>
                        </div>
                        <div class="modal-body">{{ $item->id}}
                          Deseja Realmente rejeitar a despesa?
                          
                        </div>
                        <div class="modal-footer">
                          <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
                          <form id="form-perfil" method="POST" action="{{route('despesas.rejeita', $item)}}">
                                      @csrf
                                      @method('put')
                        <!--   @method('delete') -->
                            <button type="submit" class="btn btn-danger">Rejeitar</button>
                          </form>
                        </div>
                      </div>
                    </div>
                  </div>
 
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.