Ajax parameters are coming as undefined

2

I would like to say that I researched the forum and found some similar questions, but no answer solved my problem. Follow my question:

Doubt:

I'm trying to delete a notification by ajax, but the error is occurring. The variables project_id and n_notification are like undefined . How do I fix this?

Error:

ProjectController.php:(methodremoveNotification)

//EstemétodoremoveaNotificaçãopublicfunctionremoveNotificacao(Request$request){$notificacao=HistoricoNotificacao::find($request->id)->where('n_notificacao','=',$request->nnotificacao);$nnotificacao=$request->nnotificacao;if(!$notificacao)returnresponse()->json(['error'=>'not_found'],404);$response=$notificacao->deletarNotificacao($notificacao);if($response['success']){returnresponse()->json(['success'=>$response['message']],200);}else{//Casonãodelete,informaumerroinesperadoreturnredirect()->json(['error'=>'Erroaoremoveranotificaçãonnotificacao'+$nnotificacao],500);//->json(['error'=>$response['message']],500);}}


Project.php:methoddeleteNotification)

//EstemétodoremoveosdadosdaNotificaçãopublicfunctiondeletarNotificacao(HistoricoNotificacao$notificacao):Array{$notificacao=$this->delete();if($notificacao){return['success'=>true,'message'=>'Sucessoaoexcluiranotificação'];}else{return['success'=>false,'message'=>'Falhaaoexcluiranotificação'];}}


AjaxPage(project-notification.js)HomeYouareresponsibleforpassingtheprojectidandn_notificationvariablestotheremoveNotification

$(document).on('click','#btnExcluirNotificacao',function(){$('#idProjNotificacao').val($(this).data('id'));$('#numNotificacao').text($(this).data('nnotificacao'));});//Ajaxpararemoverumanotificação,eatualizarapáginaapósaação$('.removeNotificacao').click(function(){vardata_id=$('#idProjNotificacao').val();varn_notificacao=$('#numNotificacao').val();$.ajaxSetup({headers:{'X-CSRF-TOKEN':$('meta[name="csrf-token"]').attr('content')
        }
    }); 

    $.ajax({
        url:  "/projetos/removeNotificacao",
        type: "POST",
        data: {id: data_id, nnotificacao: n_notificacao}
    }).done(function (response) {
        console.log(response);

        if (response.success) {  

        /*  $('.message').text("Sucesso ao excluir");
         $('.message').show();  */
        alert ('Sucesso ao excluir a notificação');

        setTimeout(function(){
                location.reload();
            }, 4000); 
        }
        else {
        //    alert(response.error);
        alert("Erro ao excluir a notificação");

        }   
    }).fail(function (response) {
      //  $('.message').text("Erro ao excluir");
      alert("Falha ao excluir a notificação , nnotificacao = " + response.nnotificacao + "  Id = "+response.id);
    });

    return false;
});




//Evento que preencherá o modal View de histórico de Notificações
$(document).on('click', '.btnViewNotificacao',function () {
    $('#modalViewIdNotificacao').val(($(this).data('id')));
    $('#modalViewNnotificacao').val(($(this).data('nnotificacao')));
    $('#modalViewDtRecebimento').val(($(this).data('dtrecebimento')));
    $('#modalViewDtResposta').val(($(this).data('dtresposta')));
    $('#modalViewConteudo').val(($(this).data('conteudo')));
    $('#modalViewOrigem').val(($(this).data('origem')));
    $('#modalViewDtConclusao').val(($(this).data('dtconclusao')));
});

//Evento que preencherá o modal Edit de histórico de Notificações
  $(document).on('click', '.btnEditNotificacao',function () {
    $('#modalEditIdNotificacao').val(($(this).data('id')));
    $('#modalEditNnotificacao').val(($(this).data('nnotificacao')));
    $('#modalEditDtRecebimento').val(($(this).data('dtrecebimento')));
    $('#modalEditDtResposta').val(($(this).data('dtresposta')));
    $('#modalEditConteudo').val(($(this).data('conteudo')));
    $('#modalEditOrigem').val(($(this).data('origem')));
    $('#modalEditDtConclusao').val(($(this).data('dtconclusao')));
});


Modal Delete Notification

<!-- Modal de Excluir Notificação-->
                <div class="modal fade modal-danger" id="modalExcluirNotificacao" aria-hidden="true" aria-labelledby="examplePositionCenter"
                 role="dialog" tabindex="-1">
                <div class="modal-dialog modal-center">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">×</span>
                            </button>
                            <h4 class="modal-title">Exclusão da Notificação</h4>
                        </div>
                        <div class="modal-body">
                           <input type="hidden" id="idProjNotificacao"> 
                            <p>Deseja excluir a notificação de número "<span id="numNotificacao"></span>"?</p>
                        </div>
                        <div class="modal-footer">
                            <a type="button" class="btn btn-danger removeNotificacao" data-dismiss="modal">Excluir</a>
                            <button type="button" class="btn btn-default btn-pure" data-dismiss="modal">Fechar</button>
                        </div>
                    </div>
                </div>
            </div>
            <!-- Fim do Modal de Excluir Notificação -->


JavaScript libraries of the edita.blade.php page

@section('adminlte_js')

 <script src="https://code.jquery.com/jquery-3.2.1.min.js"integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>  

<!-- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> -->

 <!--Inicio das interações em AJAX-->
     <script src="{{asset('js/pages-js/projeto/projeto-validaData.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-cadNovasLocalidades.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-autorizaProjeto.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-autorizaDocs.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-localidades.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-create.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-notificacao.js')}}"></script>
     <script src="{{asset('js/pages-js/projeto/projeto-errata.js')}}"></script> 
    <!--Fim das interações em AJAX-->


     <script  src="{{asset('js/app-js.js')}}"></script>

    <!-- <script  src="{{asset('js/datatables/jquery-1.12.4.js')}}"></script>  -->
    <!--Inicio da biblioteca DataTables-->
    <!--  <script src="{{asset('js/datatables/dataTables.buttons.min.js')}}"></script>
     <script src="{{asset('js/datatables/buttons.flash.min.js')}}"></script>
     <script src="{{asset('js/datatables/jszip.min.js')}}"></script>
     <script src="{{asset('js/datatables/pdfmake.min.js')}}"></script>
     <script src="{{asset('js/datatables/vfs_fonts.js')}}"></script>
     <script src="{{asset('js/datatables/buttons.html5.min.js')}}"></script>
     <script src="{{asset('js/datatables/buttons.print.min.js')}}"></script>
     <script src="{{asset('js/datatables/buttons.colVis.min.js')}}"></script>  -->
     <!--Fim da biblioteca DataTables -->  



    @yield('js')
    
asked by anonymous 23.05.2018 / 19:11

2 answers

1

Try to use:

var n_notificacao = $('#numNotificacao').html();
    
23.05.2018 / 19:52
1

I have not seen in the code how you are setting the data attribute of the #btnExcluirNotificacao button.

But you can try this and see if it works:

//Ajax para remover uma notificação, e atualizar a página após a ação
$('.removeNotificacao').click(function () {

    var data_id = $('#btnExcluirNotificacao').data('id');
    var n_notificacao = $('#btnExcluirNotificacao').data('nnotificacao');

If it does not work, try:

var data_id = $('#btnExcluirNotificacao').attr('data-id');
var n_notificacao = $('#btnExcluirNotificacao').attr('data-nnotificacao');
    
23.05.2018 / 23:54